您的位置:首页 > 其它

Ubuntu 下 stat 获取符号链接文件有 bug

2015-08-18 21:34 274 查看
今天根据stat这个函数写了ls -l的功能,测试时发现符号链接文件 l 不能被正确识别。

我创建了一个符号链接文件 10,指向普通文件1.c



stat 这个函数无法获取符号链接文件的属性,他获取的是该符号链接指向的文件。

问题就来了,struct buf 这个结构体里面 st_mode 的高4位表示文件类型,有符号链接这个文件类型。

测试代码:

头文件省略

int main (int argc, char* argv[])

{

struct stat buf;

stat(argv[1], &buf);

if (S_ISLNK(buf.st_mode))

printf(“链接文件!\n”);

if (S_ISREG(buf.st_mode))

printf(“普通文件\n”);

return 0;

}

gcc后输入 ./a.out 10





系统自带的ls -l 查看符号链接文件时的处理,应该不是使用stat这个函数来操作。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: