【问题标题】:Difference between lstat fstat and stat in CC语言中lstat fstat和stat的区别
【发布时间】:2015-12-29 22:43:25
【问题描述】:

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

那么lstatfstatstat系统调用有什么区别?

【问题讨论】:

  • 这正是the manual 所说的。
  • 来吧各位,至少得花点力气才敢问
  • 现在这个问题在谷歌上的热门话题。我真的不认为实际回答它会如此糟糕。谢天谢地someone did.

标签: c stat fstat


【解决方案1】:

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

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

fstat()stat() 相同,除了文件 要检索的信息由文件描述符指定 (而不是文件名)。

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

【讨论】:

    【解决方案2】:

    相似之处:它们都以文件名作为参数。

    区别:只要文件名是符号链接,stat() 就会返回与链接关联的目标文件的属性或inode 信息。而 lstat() 只返回链接的属性。

    请参阅 stat() 与 lstat() 的手册页。

    【讨论】:

      【解决方案3】:

      谷歌搜索以下内容:lstat v fstat v stat

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

      页面上列出了以下简单答案: stat() 统计path指向的文件并填写buf。 lstat() 与 stat() 相同,除了如果 path 是符号链接,则链接本身是 stat-ed,而不是它所引用的文件。 fstat() 与 stat() 相同,只是要统计的文件由文件描述符 fd 指定。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2018-09-12
        • 2014-05-30
        • 2019-07-21
        • 1970-01-01
        • 2023-03-13
        • 1970-01-01
        • 1970-01-01
        • 2018-08-12
        相关资源
        最近更新 更多