shell命令的源代码
如何用C语言编写shell(UNIX)某些命令的函数?例如退出函数的源代码是什么?我们如何用C语言编写它的函数呢?
或者
例如; exit 命令:执行退出 shell 的 exit 命令。 (如何做到这一点/从哪个链接/书籍;可以采取一个概念?)
并且类似地对于 pwd 命令:实现打印用户当前工作目录的 pwd 命令。
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
如果您想要源代码,可以在 GNU Coreutils 页面找到它。
如果您询问如何从程序内退出 shell,
exit
命令行命令是 bash 内置命令,没有/bin/exit
。你必须找到适当的 PID 并杀死它。exit
内置函数可能会执行一些清理操作,然后使用exit(int)
。如果您想要 shell 内置函数的源代码,请查看 bash 源代码。
If you want the source code, you can find it at the GNU Coreutils page.
If you're asking how to exit a shell from within a program, the
exit
command line command is a bash builtin, there's no/bin/exit
. You'd have to find the appropriate PID and kill it. Theexit
builtin probably performs some cleanup and then usesexit(int)
.If you want the source code for the shell builtins, look at the bash source.
有很多开源或免费软件的 shell,因此您可以下载它们并研究它们的源代码。一个简单的例子是sash,一个更复杂的例子是zsh
exit
函数(从 shell 调用exit
builtin) 位于 GNU libc,它运行注册的处理程序(例如通过 atexit 等..),然后调用 _exit 系统调用。系统调用主要由linux 内核,其源代码位于 kernel.org
我强烈建议阅读一本关于操作系统的好教科书,例如Andrew Tanenbaum 的《现代操作系统》,或 Ann McHoes 和 Ida M. Flynn 的《理解操作系统》。
我还建议阅读一本优秀的 Posix/Unix 编程书籍,例如 Rochkind 和 Rochkind 的 Advanced Unix Programming。已故的史蒂文斯
There are many shells which are open-source or free software, so you can download them and study their source code. A simple example is sash, a more complex example is zsh
The
exit
function (called from the shell'sexit
builtin) is inside GNU libc, it runs the registered handlers (e.g. by atexit etc..) and then call the _exit system call.system calls are mostly handled by the linux kernel whose source code is on kernel.org
I strongly recommend reading a good textbook on operating systems, like e.g. Modern Operating Systems by Andrew Tanenbaum, or Understanding Operating Systems by Ann McHoes &, Ida M. Flynn.
I also recommend reading a good Posix/Unix programming book like e.g. Advanced Unix Programming by Rochkind & the late Stevens