linux编程之“lstat实例”

时间 : 14-12-16 栏目 : linux编程 作者 : 老薛 评论 : 0 点击 : 1,179 次

本文出自《linux技术开源社区

[root@test xuekun]#cat  blk.c

#include <stdlib.h>
#include <stdio.h>
#include <sys/stat.h>
#include <errno.h>
#include <string.h>
int main(int argc, char *argv[])
{
int i;
struct stat buf;
char *ptr;
for (i=1; i < argc; i++) {
printf("%s: ", argv[i]);
if (lstat(argv[i], &buf) < 0) {
printf("lstat error: %s\n", strerror(errno));
continue;
}
if (S_ISREG(buf.st_mode)) {
ptr = "regular";
} else if (S_ISDIR(buf.st_mode)) {
ptr = "directory";
} else if (S_ISCHR(buf.st_mode)) {
ptr = "character special";
} else if (S_ISBLK(buf.st_mode)) {
ptr = "block special";
} else if (S_ISFIFO(buf.st_mode)) {
ptr = "fifo";
} else if (S_ISLNK(buf.st_mode)) {
ptr = "symbolic link";
} else if (S_ISSOCK(buf.st_mode)) {
ptr = "socket";
} else {
ptr = "** nuknown mode **";
}
printf("%s\n", ptr);
}
exit(0);
}

[root@test xuekun]# gcc -o blk blk.c

[root@test xuekun]# ./blk /tmp/ /dev/sdc
/tmp/: directory
/dev/sdc: block special

 

相关文章: 文件I/O_lseek函数讲解

本文标签

除非注明,文章均为( 老薛 )原创,转载请保留链接: http://www.bdkyr.com/xtyw003/523.html

linux编程之“lstat实例”:等您坐沙发呢!

发表评论

3 + 3 = ?


博主微信号,很高兴为您提供帮助

随便看看

为您推荐

0