zoukankan      html  css  js  c++  java
  • 十六、文件和目录——设备特殊文件

    16.1 设备特殊文件介绍

    • 每个文件系统所在的存储设备都由主、次设备号表示,文件系统为设备文件
    • major 和 minor 这两个宏可用来获得主、次设备号。所有文件都由对应的主设备号和次设备号,可以通过 st_dev 加这两个宏获得
    • 只有字符特殊文件和块特殊文件俺才有 st_rdev 值,其他的设备一般都是 st_dev ,这个两个值都在 stat 结构体中

      

      8 为主设备号,1为次设备号

    16.2 例子

      

     1 #include <unistd.h>
     2 #include <fcntl.h>
     3 #include <string.h>
     4 #include <stdlib.h>
     5 #include <stdio.h>
     6 #include <sys/stat.h>
     7 #include <memory.h>
     8 
     9 
    10 void out_dev(unsigned long devno)
    11 {
    12     //生成主设备号和次设备号
    13     int mj = major(devno);
    14     int mi = minor(devno);
    15     printf("(%5d, %5d)
    ", mj, mi);
    16 }
    17 
    18 int main(int argc, char *argv[])
    19 {
    20     if(argc < 2) {
    21         fprintf(stderr, "usage: %s files
    ", argv[0]);
    22         exit(1);
    23     }
    24 
    25     struct stat buff;
    26     int i;
    27     for(i = 1; i < argc; i++) {
    28         memset(&buff, 0, sizeof(buff));
    29         //获取文件属性信息
    30         if(lstat(argv[i], &buff) < 0) {
    31             perror("lstat error");
    32             continue;
    33         }
    34         printf("%-20s", argv[i]);
    35 
    36         //判断是否是字符设备文件和块设备文件
    37         if(S_ISCHR(buff.st_mode) || S_ISBLK(buff.st_mode)) {
    38             //输出特殊设备文件具有的特殊设备号(包括主、次设备号)
    39             //字符设备和块设备文件
    40             out_dev(buff.st_rdev);
    41         }
    42 
    43         printf("    on:");
    44         
    45         //输出所有文件都具有的设备号(包括主次设备号)
    46         out_dev(buff.st_dev);
    47     }
    48 
    49     return 0;
    50 }

      

  • 相关阅读:
    iOS Touch ID 身份认证
    iOS 真机测试错误“The application could not be verified”
    iOS 容器控制器 (Container View Controller)
    cocos creator按钮点击按钮弹起效果设置方法
    coco creator编辑动画坑之拖图片
    cocos动画没有cc.Sprite.spriteFrame属性
    cocos发布遇到的问题
    Android数据库GreenDao配置版本问题
    Android写入文件电脑看不到
    如何保证WebBrowser一直在页面内跳转
  • 原文地址:https://www.cnblogs.com/kele-dad/p/9080030.html
Copyright © 2011-2022 走看看