#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
//这是header.h//
/*
//LINUX C 获取文件类型描述
*/
int main(int argc ,char **argv)
{
struct stat buf;
if(argc == 1 )
{
printf("Using %s filename\n",argv[0]);
return 0;
}
if(lstat(argv[1],&buf) == -1)
{
printf("stat error:%s\n",strerror(errno));
return -1;
}
printf("st_mode :%o\n",buf.st_mode);
if(S_ISREG(buf.st_mode))
printf("-");
else if(S_ISDIR(buf.st_mode))
printf("d");
else if(S_ISCHR(buf.st_mode))
printf("c");
else if(S_ISBLK(buf.st_mode))
printf("b");
else if(S_ISFIFO(buf.st_mode))
printf("p");
else if(S_ISLNK(buf.st_mode))
printf("l");
else if(S_ISSOCK(buf.st_mode))
printf("s");
else
printf("error");
printf("\n");
}
#include "header.h"
/*
*/
int main(int argc ,char **argv)
{
struct stat buf;
if(argc == 1 )
{
printf("Using %s filename\n",argv[0]);
return 0;
}
if(lstat(argv[1],&buf) == -1)
{
printf("stat error:%s\n",strerror(errno));
return -1;
}
printf("st_mode :%o\n",buf.st_mode);
int n;
for(n=8;n>=0;n--)
{
if(buf.st_mode&(1<
{
switch(n%3)
{
case 2:
printf("r");
break;
case 1:
printf("w");
break;
case 0:
printf("x");
break;
default:
break;
}
}
else
{
printf("-");
}
}
printf("\n");
}