C语言中lstat和stat的区别



我正在用C语言写作业,要在文件系统中搜索目录、常规文件和符号链接。现在我使用lstat来获取项目的信息。

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

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

lstat()stat()相同,除了pathname是一个符号链接,那么它返回关于链接本身的信息,而不是文件

fstat()stat()相同,不同之处在于要检索的信息由文件描述符指定(而不是文件名).

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

相似之处:它们都以filename作为参数

差异:当文件名是符号链接时,stat()返回与该链接关联的目标文件的属性或inode信息。而lstat()只返回链接的属性。

参考手册stat()和lstat()

用google搜索lstat v fstat v stat

提供的第一个链接是描述这些差异的手册页:http://manpages.ubuntu.com/manpages/hardy/man2/stat.2.html

页面上列出的

是以下简单的答案:Stat()统计由path指向的文件并填充buf。Lstat()与stat()相同,不同之处在于,如果path是一个符号链接,那么将统计链接本身,而不是它所引用的文件。Fstat()与stat()相同,除了要统计的文件是由文件描述符fd指定的。

相关内容

  • 没有找到相关文章

最新更新