具体代码:
#include <stdio.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <unistd.h>
#include <string.h>
#include <time.h>
char str[]="wrx";
void get_filepermession(mode_t mode)
{
int i=0;
for(;i<9;i++)
{
if((mode &(0400>>i))==0)
{
putchar('-');
continue;
}
/*
switch(i%3)
{
case 0:
putchar('r');
break;
case 1:
putchar('w');
break;
case 2:
putchar('x');
break;
}
*/
putchar(str[i%3]);
}
}
int main(int argc, const char *argv[])
{
struct stat buf;
if(stat("../文件IO/01fileno.c",&buf)<0)
{
perror("stat");
return -1;
}
time_t now=time(NULL);
struct tm *p=NULL;
p =localtime(&now);
char arr[12][6]={"一","二","三","四","五","六",\
"七","八","九","十","十一","十二"};
//文件类型以及权限
printf("mode:%o\n",buf.st_mode); //无符号的int类型
get_filepermession(buf.st_mode);
putchar(10);
//硬连接数
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("%s月 %02d %02d:%02d\n",\
arr[p->tm_mon],p->tm_mday,\
p->tm_hour,p->tm_min);
return 0;
}
运行结果: