我在C中编写学校作业,在文件系统中搜索目录,常规文件和符号链接。现在,我使用lstat
来获取有关项目的信息。
那么lstat
fstat
和stat
系统调用之间的区别是什么?
答案 0 :(得分:47)
我也在搜索stat vs lstat vs fstat
,虽然已经有了这个问题的答案,但我希望看到它的格式如下:
lstat()
与stat()
相同,但路径名是符号的除外 链接,然后它返回有关链接本身的信息,而不是文件 它指的是。
fstat()
与stat()
相同,但该文件除外 要检索的信息由文件描述符指定 FD。
答案 1 :(得分:2)
相似性:它们都将文件名作为参数。
区别:只要文件名是符号链接,stat()就会返回与链接关联的目标文件的属性或inode信息。然而,lstat()仅返回链接的属性。
请参阅stat()与lstat()的联系方式。
答案 2 :(得分:1)
使用Google搜索以下内容:lstat v fstat v stat
提供的第一个链接是描述这些差异的手册页:http://manpages.ubuntu.com/manpages/hardy/man2/stat.2.html
页面上列出的是以下简单答案: stat()统计路径指向的文件并填充buf。 lstat()与stat()相同,只是如果path是符号链接,则链接本身是stated ed,而不是它引用的文件。 fstat()与stat()相同,不同之处在于要由statd编辑的文件由文件描述符fd指定。