#include <stdio.h>
#include <unistd.h>
#include <fcntl.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <time.h>
#define MY_ERROR_MSG_R1(msg) {perror(msg);return -1;}
char *month[]={"一月","二月","三月","四月","五月","六月","七月","八月","九月","十月","十一月","十二月"};
char *get_filePermission(mode_t modei,char ptr[10]);
int main(int argc, const char *argv[])
{
struct stat buf;
if(stat(argv[1],&buf)<0)
{
MY_ERROR_MSG_R1("stat");
}
char perm[10]="";
get_filePermission(buf.st_mode,perm);
printf("mode:%s\n",perm);
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);
time_t t=buf.st_ctime;
struct tm *tmp=localtime(&t);
printf("%s %02d %02d:%02d %s\n",\
month[tmp->tm_mon],tmp->tm_mday,tmp->tm_hour,\
tmp->tm_min,argv[1]);
return 0;
}
char *get_filePermission(mode_t mode,char ptr[])
{
char per[]="rwx";
for(int i=0;i<9;i++)
{
if(mode>>(8-i)&1)
{
ptr[i]=per[i%3];
}else
{
ptr[i]='-';
}
}
ptr[10]='\0';
return ptr;
}
2.23 作业
最新推荐文章于 2024-10-09 19:26:57 发布