如何在不使用ls -ln的情况下在C中打印文件详细信息

时间:2012-06-15 04:40:16

标签: c linux file time ls

在磁盘上找到文件后,我现在需要打印出所有细节,例如:

-rwxr-xr-x 1 1000 1000 8296 2010-01-06 22:29 ./Documents/exer4
-rwxr-xr-x 1 1000 1000 8517 2009-12-30 11:30 ./Documents/os/exer4
lrwxrwxrwx 1 1000 1000 8 2010-01-10 13:10 ./Documents/cs/2012/exer4 -> ../a.out

我需要在不使用ls -ln的情况下打印文件详细信息。想知道怎么做?

谢谢

3 个答案:

答案 0 :(得分:4)

您需要stat()功能。

这是一个记录* NIX文件功能的网页,包括stat()

http://rabbit.eng.miami.edu/info/functions/unixio.html

答案 1 :(得分:2)

您可以使用此功能:

int lstat(const char *path, struct stat *buf);

答案 2 :(得分:1)

这对我来说很有用。

 ls -l | grep -v "\->"

它只是过滤掉其中包含->的任何行。

但请注意,如果您的名称中有任何文件/目录由于某种原因而有->,那么它们也会被过滤掉。话虽如此,我从未见过,也不是一个好主意。