如何用C语言编写shell(UNIX)的某些命令的函数?例如退出函数的源代码是什么?我们如何在C语言中编写其功能?
OR
例如; exit命令:执行退出shell的exit命令。 (如何做到/从哪个链接/书;可以采取一个概念?)
和类似对于pwd命令:实现打印用户当前工作目录的pwd命令。
答案 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已故的史蒂文斯