#include<stdio.h>
#include<sys/types.h>
#include<sys/stat.h>
#include<unistd.h>
#include<time.h>
void get_mode(mode_t m)
{
int i=0;
for(i=0;i<9;i++)
{
if(m & (0400>>i) == 0)
{
putchar('-');
continue;
}
switch(i%3)
{
case 0:
putchar('r');
break;
case 1:
putchar('w');
break;
case 2:
putchar('x');
break;
}
}
printf("\n");
}
int main(int argc, const char *argv[])
{
struct stat buf;
if(stat("./1.png",&buf)<0)
{
perror("stat");
return -1;
}
struct tm *t = NULL;
//文件类型以及文件权限
printf("mode:%o\n",buf.st_mode);
get_mode(buf.st_mode);
//文件硬件链接数
printf("link:%ld\n",buf.st_nlink);
//文件所属用户
printf("uid:%d\n",buf.st_uid);
printf("gid:%d\n",buf.st_gid);
//文件大小
printf("size: %ld\n",buf.st_size);
//文件修改时间
printf("time: %ld\n",buf.st_ctime);
t=localtime(&buf.st_ctime);
printf("%02d月 %02d日",t->tm_mon+1,t->tm_mday);
printf("%02d:%02d\n",t->tm_hour,t->tm_min);
return 0;
}
IO进程线程作业day3
最新推荐文章于 2024-09-24 08:48:12 发布
该C语言代码示例展示了如何使用stat函数获取文件的模式、权限、链接数、所有者、群组、大小以及最后修改时间,并以可读格式打印文件权限。程序首先获取指定文件./1.png的信息,然后解析并输出其各种属性。
摘要由CSDN通过智能技术生成