shell命令的源代码

发布于 2024-12-19 22:08:56 字数 191 浏览 0 评论 0 原文

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

或者

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

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

How do I write a function of some commands of shell (UNIX) in C language? E.g what is the source code of the exit function? How can we write its function in C lanugage?

OR

For example; exit command: Implement the exit command that quits the shell. (how to do this/ from which link/book ; a concept can be taken?)

and similarly For pwd command: Implement the pwd command that prints the user’s current working directory.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

醉态萌生 2024-12-26 22:08:56

如果您想要源代码,可以在 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. The exit builtin probably performs some cleanup and then uses exit(int).

If you want the source code for the shell builtins, look at the bash source.

东京女 2024-12-26 22:08:56

有很多开源或免费软件的 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's exit 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

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文