gpt4 book ai didi

C 程序写入目录内容

转载 作者:行者123 更新时间:2023-11-30 18:44:14 24 4
gpt4 key购买 nike

我需要用 C 语言编写 ls 程序的简化版本。它将列出当前目录的所有内容。运行时,它应该显示与此命令相同的输出:

ls -alU --time-style=long-iso

没有向程序提供任何参数。我在开始时遇到了困难,但我知道我必须进行一些系统调用,例如 opendir()、readdir()、lstat() 和 getpwuid()。非常感谢任何帮助我离开地面并进入其中的帮助。我也很想了解这一点。谢谢!

最佳答案

从输出开始,逐个字段地向后推算:

-rw-r--r--   1 kaz  kaz       3573 2018-06-07 13:59 .bashrc

名称.bashrc来自readdir遍历。

除名称外的所有内容均来自 lstat对名称调用的系统调用。

-rw...类型和标志表示来自st_mode您必须将其解码为该形式。有一些访问宏可以提供帮助,例如 S_ISDIR(mode)用于测试它是否是目录或 (mode & S_IXUSR) != 0用于测试它是否可由所有者执行。 1是链接计数,st_nlinkkazkaz是用户和组 ID,使用(例如)getpwuid 转换为文本获得struct passwd * ,和getgrgid获得 struct group *其中有名称字段。 3753st_size 。日期输出可以通过格式化 st_mtime 得到使用strftime功能。

可以使用 printf 格式化为填充列或sprintf ,例如:printf("<%-50s>", "this-is-left-aligned-in-50-col-field") .

关于C 程序写入目录内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58617161/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com