C

时间:2015-10-01 19:06:42

标签: c stat fstat

我在C中编写学校作业,在文件系统中搜索目录,常规文件和符号链接。现在,我使用lstat来获取有关项目的信息。

那么lstat fstatstat系统调用之间的区别是什么?

3 个答案:

答案 0 :(得分:47)

我也在搜索stat vs lstat vs fstat,虽然已经有了这个问题的答案,但我希望看到它的格式如下:

  

lstat()stat()相同,但路径名是符号的除外   链接,然后它返回有关链接本身的信息,而不是文件   它指的是。

     

fstat()stat()相同,但该文件除外   要检索的信息由文件描述符指定   FD。

http://man7.org/linux/man-pages/man2/stat.2.html

答案 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指定。