apue2读书笔记

1.判断文件类型的两种方法
1):使用宏函数

  1. struct stat buf;
  2. lstat( "/home" ,buf);
  3. if (S_ISDIR(buf.st_mode)){
  4.    printf( "目录文件" );
  5. }

2):使用st_mode和S_IFMT的与运算结果

  1. struct stat buf;
  2. lstat( "/home" ,&buf);
  3. if (buf.st_mode&S_IFMT==S_IFDIR){
  4.    printf( "目录文件" );
  5. }

事实上,第一种方法只是第二种方法的进一步封装,查看<sys.stat.h>即可找到宏函数S_ISDIR的定义为:
#define S_ISDIR(mode) (( (mode) & IFMT) == S_IFDIR).

你可能感兴趣的:(读书)