1.判断文件类型的两种方法
1):使用宏函数
- struct stat buf;
- lstat( "/home" ,buf);
- if (S_ISDIR(buf.st_mode)){
- printf( "目录文件" );
- }
2):使用st_mode和S_IFMT的与运算结果
- struct stat buf;
- lstat( "/home" ,&buf);
- if (buf.st_mode&S_IFMT==S_IFDIR){
- printf( "目录文件" );
- }
事实上,第一种方法只是第二种方法的进一步封装,查看<sys.stat.h>即可找到宏函数S_ISDIR的定义为:
#define S_ISDIR(mode) (( (mode) & IFMT) == S_IFDIR).