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

在磁盘上find一个文件后,我现在需要打印出所有的细节,例如:

-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 。任何想法如何做到这一点?

谢谢

你想要stat()函数。

这是一个网页,其中包含文件* NIX文件功能,包括stat()

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

你可以使用这个功能:

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

这对于我来说是很有用的。

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

它只是过滤掉任何有->行。

但是,请注意,如果您有任何文件/目录出于某种原因->在其名称中,它们也将被过滤掉。 话虽如此,我从来没有见过,也不是一个好主意。