#include "../head.h"
void getfilePermission(mode_t mode,char ret[10])
{
int temp = 0400;
int flag = 0;
int res;
int i=0;
char permission;
while(temp)
{
res = temp & mode;
flag = (flag+1)%3;
if(0 == res)
permission = '-';
else if(flag == 1)
permission = 'r';
else if(flag == 2)
permission = 'w';
else
permission = 'x';
ret[i++] = permission;
temp = temp>>1;
}
ret[i] = '\0';
}
void getTime(time_t time)
{
struct tm * res = localtime(&time);
if(NULL == res)
{
printf("获取时间失败\n");
return;
}
printf("%d月 %d %d:%d\n",res->tm_mon+1,res->tm_mday\
,res->tm_hour,res->tm_min);
}
int main(int argc, const char *argv[])
{
struct stat buf;
if(stat("./02_open.c",&buf)<0)
{
ERR_MSG("stat");
return -1;
}
printf("mode:0%o\n",buf.st_mode);
char ret[10];
getfilePermission(buf.st_mode,ret);
printf("%s\n",ret);
printf("nlink:%lu\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_atime);
getTime(buf.st_atime);
return 0;
}
#include <stdio.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>
#include <unistd.h>
#include <string.h>
#include <stdlib.h>
#include <time.h>
#define ERR_MSG(msg) do{\
fprintf(stderr,"line:%d\n",__LINE__);\
perror(msg);\
}while(0)
![在这里插入图片描述](https://img-blog.csdnimg.cn/96aed14f10864a9e9301e76beef0b6f7.png#pic_center)