#include "head.h"
char* get_filePermission(mode_t mode,char ptr[10],long size)
{
char buf[10]="";
if(size<10)
{
return NULL;
}
bzero(ptr,size);
int i=0400;
int j=0200;
int k=0100;
for(int m=0;m<3;m++)
{
if((mode&i)!=0)
// putchar('r');
buf[3*m]='r';
else
buf[3*m]='-';
if((mode&j)!=0)
buf[3*m+1]='w';
else
buf[3*m+1]='-';
if((mode&k)!=0)
buf[3*m+2]='x';
else
buf[3*m+2]='-';
i=i>>3;
j=j>>3;
k=k>>3;
}
strcpy(ptr,buf);
return ptr;
}
int main(int argc, const char *argv[])
{
struct stat buf;
if(stat("./gettable.c",&buf)<0)
{
perror("stat");
return -1;
}
//文件类型及权限
printf("-%o ",buf.st_mode);
char perm[10]="";
get_filePermission(buf.st_mode,perm,sizeof(perm));
printf("%s ",perm);
//硬连接数
printf("%lu ",buf.st_nlink);
//文件所属用户
printf("%d ",buf.st_uid);
//文件所属组用户
printf("%d ",buf.st_gid);
//文件大小
printf("%ld ",buf.st_size);
//日期
// printf("time:%ld\n",buf.st_ctime);
struct tm* info=NULL;
info=localtime(&(buf.st_ctime));
printf("%d月 %02d %02d:%02d\n",info->tm_mon+1,info->tm_mday,\
info->tm_hour,info->tm_min);
return 0;
}
执行结果: