c - 如何在 C 中实现我自己的基本 unix shell?

标签 c unix shell command-line interpreter

我是进程和线程管理的新手。我的 Shell 应该理解 PATH 环境变量。可以设置和修改。它以两种方式运行——交互式和批处理模式。 Shell 能够处理多个任务,例如 ls;ps;wc file;cal。我也想亲自动手处理信号。所以我也应该处理 ^K , ^c 。

我知道我将不得不使用 exec、fork 和管道,但就是无法开始。

最佳答案

所有 unix shell 都是开源的 - 因此阅读代码可能是一个不错的起点。

如果您正在寻找有关该主题的入门文章,请尝试 Writing Your Own Shell来自 Linux 公报。

另一个好的起点是查看 mini-shell 的源代码只是因为它是让你头脑清醒的最小的东西之一。

关于c - 如何在 C 中实现我自己的基本 unix shell?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1500004/

相关文章:

linux - 杀死端口的 Bash 脚本

linux - 使用未知的文件格式重命名文件名和掩码。

c - 将字符串存储在字符串中?

c - 覆盖读取功能,但当文件描述符为 3 或 4 时我遇到问题

c - 没有任何语句的for循环

java - 在未处理的异常期间,JVM 会发出什么信号?

java - UNIX系统和Windows系统中读取.CSV文件的差异

unix - Jenkins 似乎是通过 ssh 启动的脚本中 nohup 的目标,我该如何防止?

linux - 使用 source .bashrc 后别名未更新

C 编程 - Scanf/出现意外行为