代码如下:
1 #include<stdio.h> 2 #include<stdlib.h> 3 #include<sys/types.h> 4 #include<sys/stat.h> 5 #include<unistd.h> 6 int main( int argc ,char* argv[1]){ 7 if(argc<2){ 8 printf("你应该这样./文件名 你给的文件的名称\n");//提示传入的参数不对 9 exit(1);//退出程序 10 } 11 //使用stat函数 12 struct stat st; 13 int ret =stat(argv[1],&st);//传入两个参数第一个是文件的名称,第二个> 是linu提供的结构体的类型 14 if(ret==-1){ 15 perror("stat");//打印错误的信息 16 exit(1);//退出程序 17 } 18 int size=(int)st.st_size;//得到文件的大小,但是需要类型的转化 19 printf("The size is %d\n",size);//打印文件的大小 20 21 }
那么还有一个就是lstat和stat的区别(解读链接文件的时候)
最大的区别就是lstat不会去追踪文件,打印的就是当前文件的大小,而stat会追踪文件打印的是链接文件的大小
stat结构体下的东西