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这个函数来操作。
我创建了一个符号链接文件 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这个函数来操作。
相关文章推荐
- UVA 11019 Matrix Matcher
- 【分享】突破天际,珍稀收藏 共超越1TB galgame超大种子合集
- PB动态游标代码段
- STM32 控制红外线收发
- HDU5390 tree dfs序+线段树分层离线+字典树求异或最大值
- Android UI设计的三种常见布局(LinearLayout、RelativeLayout、FrameLayout)
- JavaScript 正则表达式
- 截断WM_SYSCOMMAND的SC_CLOSE命令(VC与Delphi双版本)
- JavaScript 正则表达式
- JAVA中利用不规则二维数组输出杨辉三角形
- 2015-8-15比赛总结
- 视音频技术零基础学习笔记(四)及解码程序添加注释
- 【leetcode】Median of Two Sorted Arrays
- CSU 1671 经营小卖部
- 活动的生命周期、四大布局(一)
- bzoj1025
- Exchange 2016之Exchange DAG 高可用
- hdu 5400 Arithmetic Sequence(水题一道)
- HDU 2444 (二分图判定+最大匹配)
- POJ1776 Task Sequences