我想确切知道“Is”是怎么回事。命令适用于Linux和Unix。

据我所知,ls forks&执行到Linux / Unix shell,然后获取(当前文件树的输出。例如/home/ankit/)。我需要更详细的解释,因为我不确定调用fork后会发生什么。

有人可以详细解释'ls'命令的功能吗?

有帮助吗?

解决方案

ls不分叉。 shell forks和execs是为了运行任何没有内置的命令,它可以运行的命令之一是ls。

ls使用opendir()和readdir()来遍历目录中的所有文件。如果它需要关于其中一个的更多信息,则调用stat()。

其他提示

为了补充答案,在C编程语言书(K& RC)中,他们给出了一个关于如何实现ls的小例子。他们已经很好地解释了所使用的数据结构和功能。

如果你真的想了解ls的详细内部,请查看源代码。您可以关注tpgould链接到Solaris源代码,也可以从任何Linux或BSD发行版中在线查找源代码。

我特别推荐4.4BSD源码。

我记得,ls首先解析其众多选项,然后从命令行中列出的文件或目录开始(默认为“。”)。子目录通过递归到目录列表例程来处理。我记得没有fork()或exec()。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top