在C中实现ls命令

时间:2016-11-25 12:55:18

标签: c linux ls

我试图在c中使用尽可能多的标志来实现ls命令,但是我在获取正确的次要和主要文件时遇到问题,这里是一个示例我做了什么。

array(
   [id]=>
   [name]=>
   [email]=>
   [dob]=>
   [gallery]=>array(
                   [0] => 1.png
                   [1] => 2.png
                )
   [address]=> xyz
)

这是正常的ls命令,因为您可以看到Major为5,Minor为0。 我的程序显示以下内容:

> ls -l ~/../../dev/tty
crw-rw-rw- 1 root tty 5, 0 Nov 25 13:30 

我仍然是初学者,所以我在这里并没有真正理解这个问题,这是我到目前为止所做的(该程序与ls命令不同,但仅显示有关文件的信息) )。

Minor: 6
Major: 0

现在这只是获取有关文件的某些信息,与ls命令相比,一切似乎都是正确的,除了Minor和Major。

1 个答案:

答案 0 :(得分:2)

您正在使用st_dev,这是所在的设备。您需要st_rdev,即设备特殊文件"是" /表示。 (不过,您应该先检查文件是否是设备节点。)