2015-10-01 135 views
6

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

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

+5

这正是[手册](http://man7.org/linux/man-pages/man2/stat.2.html)所说的。 –

+2

来吧人,你至少要提出一些努力才能问 – KevinDTimm

+2

请敢于RTFM。 – alk

回答

31

我也寻找stat vs lstat vs fstat,虽然已经有一个回答这个问题,我想看看它格式化这样的:

lstat()是相同的stat(),不同之处在于,如果路径是符号 链接,则它返回有关链接本身的信息,而不是它引用的文件 。

fstat()相同stat(),除了关于哪个 信息是要检索由文件描述符 FD指定的文件。

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

1

google搜索以下内容:LSTAT v FSTAT v统计

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

页面上列出如下简单的答案: STAT()统计路径指向的文件并填充buf。 lstat()与stat()完全相同,只是如果path是一个符号链接,则链接本身是stat-ed,而不是它引用的文件。 fstat()与stat()完全相同,不同之处在于要被stat-ed的文件由文件描述符fd指定。

0

相似:他们都需要文件名作为参数。

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

请参考stat()vs lstat()的手册页。

相关问题