#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <unistd.h>
#include<time.h>
void get_filepermission(mode_t m,char perm[10]){
char str[]="rwx";
for(int i=0;i<9;i++){
if(0 == (m & (0400>>i))){
perm[i]='-';
continue;
}
perm[i]=str[i%3];
}
// return perm;
}
int main(int argc,const char *argv[])
{
if(argc < 2){
printf("请输入文件名\n");
return -1;
}
struct stat buf;
stat(argv[1],&buf);
//文件权限
char perm[10]="";
get_filepermission(buf.st_mode,perm);
printf("%s ",perm);
//硬链接数
printf("%ld ",buf.st_nlink);
//uid,gid
printf("%d ",buf.st_uid);
printf("%d ",buf.st_gid);
//size
printf("%-4ld",buf.st_size);
//time
struct tm* t = localtime(&buf.st_ctime);
printf("%02d %02d %02d:%02d ",t->tm_mon+1,t->tm_mday,t->tm_hour,t->tm_min);
//name
printf("%s\n",argv[1]);
return 0;
}