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).

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