int main(int argc,char *argv[])
{
int i;
struct stat buf;
char *ptr;
if(lstat(argv[1],&buf)<0)
{ printf("error"); return 0; }
if(S_ISREG(buf.st_mode)) ptr="普通文件";
else if(S_ISDIR(buf.st_mode)) ptr="目录文件";
else if(S_ISCHR(buf.st_mode)) ptr="字符特殊文件";
else if(S_ISBLK(buf.st_mode)) ptr="块特殊文件";
else if(S_ISFIFO(buf.st_mode)) ptr="管道或FIFO";
#ifdef S_ISLNK
else if(S_ISLNK(buf.st_mode)) ptr="符号链接";
#endif
#ifdef S_ISSOCK
else if(S_ISSOCK(buf.st_mode)) ptr="套接字";
#endif
return 0;
}
int stat(const char *pathname,struct stat *buf);
stat函数返回一个与此命名文件有关到信息结构
int fstat(int fildes, struct stat *buf);
fstat()用来将参数fildes 所指的文件状态, 复制到参数buf 所指的结构中(struct stat). Fstat()与stat()作用完全相同, 不同处在于传入的参数为已打开的文件描述词。
int lstat(const char *pathname,struct stat *buf);
lstat函数类似于stat,但是当命名的文件是一个符号链接时,lstat返回该符号链接的有关信息,而不是由该符号连接引用的文件信息。