int stat(const char *path,struct stat *buf);
成功时返回0,失败时返回EOF(-1);
path是符号链接stat获取获取的是目标文件的属性;
获取文件属性实例
#include<sys/types.h>
#include<sys/stat.h>
#include<unistd.h>
#include<stdio.h>
#include<time.h>
int main(){
struct stat buf;
int ret;
ret = stat("chmod_t.c",&buf);
if(ret<0){
perror("stat:");
return 0;
}
if(S_ISREG(buf.st_mode)){
printf("-");
}
if(S_ISDIR(buf.st_mode)){
printf("d");
}
if(S_ISCHR(buf.st_mode)){
printf("c");
}
if(S_ISBLK(buf.st_mode)){
printf("b");
}
if(S_ISFIFO(buf.st_mode)){
printf("p");
}
if(S_ISSOCK(buf.st_mode)){
printf("s");
}
int i;
for(i=8;i>=0;i--){
if(buf.st_mode & (1<<i)){
switch(i%3){
case 2:
printf("w");
break;
case 2:
printf("r");
break;
case 2:
printf("x");
break;
}
}else{
printf("-");
}
}
printf("%d",(int)buf.st_size);
struct tm *t;
printf("%d %d %d %d:%d:%d",t->tm_year+1900,t->tm_mon+1,t->tm_hour,t->tm_min,t->min,t->tm_sec);
printf("chmod_t.c\n");
return 0;
}