S_ISREG、S_ISDIR等系列宏的功能
1 #include<stdio.h> 2 #include<stdlib.h> 3 #include<unistd.h> 4 #include<string.h> 5 #include<errno.h> 6 #include<sys/types.h> 7 #include<sys/stat.h> 8 #include<fcntl.h> 9 10 int main(int arg, char *args[]) 11 { 12 13 // char s[]="abc.txt"; 14 int fd = open(args[1],O_RDONLY);//用读写追加的方式打开文件 15 if(fd==-1) 16 printf("err id %s\n",strerror(errno)); 17 else 18 { 19 printf("success fd =%d\n",fd); 20 21 struct stat buf; 22 fstat(fd,&buf); 23 if(S_ISREG(buf.st_mode))//判断文件是否为标准文件 24 { 25 printf("%s is charfile\n",args[1]); 26 } 27 if(S_ISDIR(buf.st_mode))//判断文件是否为目录 28 { 29 printf("%s is dir\n",args[1]); 30 } 31 32 printf("%s size = %d\n",args[1],buf.st_size);//判断文件的大小 33 close(fd); 34 35 } 36 return 0; 37 }
fstat和stat的功能基本一致,只是函数中的参数不同
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步