shell命令的源代码

时间:2011-12-07 14:57:22

标签: c linux shell

如何用C语言编写shell(UNIX)的某些命令的函数?例如退出函数的源代码是什么?我们如何在C语言中编写其功能?

OR

例如; exit命令:执行退出shell的exit命令。 (如何做到/从哪个链接/书;可以采取一个概念?)

和类似对于pwd命令:实现打印用户当前工作目录的pwd命令。

2 个答案:

答案 0 :(得分:2)

如果您需要源代码,可以在GNU Coreutils页面找到它。

如果您询问如何从程序中退出shell,exit命令行命令是内置的bash,则没有/bin/exit。你必须找到合适的PID并将其删除。 exit内置函数可能执行一些清理,然后使用exit(int)

如果您需要shell内置的源代码,请查看bash source

答案 1 :(得分:1)

有许多shell是开源或免费软件,因此您可以下载它们并研究它们的源代码。一个简单的例子是sash,更复杂的例子是zsh

exit函数(从shell的exit builtin调用)位于GNU libc内,它运行已注册的处理程序(例如atexit等。 )然后调用_exit系统调用。

system calls主要由linux kernel处理,其源代码位于kernel.org

我强烈建议您阅读有关操作系统的优秀教科书,例如: 现代操作系统作者:Andrew Tanenbaum,或了解操作系统作者:Ann McHoes&,Ida M. Flynn。

我还建议你阅读一本很好的Posix / Unix编程书,例如Rochkind&amp ;; Advanced Unix Programming已故的史蒂文斯