如何使用 fork-exec 调用打开一个新的 xterm window 和 运行 在那个 window 上的命令? (仅限 C 程序)
How to open a new xterm window and run a command on that window using fork-exec calls ? ( C program only)
基本上,我正在学习 pipe 和 dup 系统调用。
我想从父进程获取命令名称(如 ls、cd、mkdir 等)作为输入,并使用管道将其传递给子进程,子进程应该 打开一个新的 xterm window 并在这个新的 xterm window 中显示管道中记录的命令的手册页。
问题在于 exec 更改了子进程的整个过程映像,因此之后编写的任何代码都将被忽略(如果 exec 成功)。所以如果我将子进程执行到“/bin/xterm”,那么随着进程映像更改为 xterm,子块中的任何 exec 调用都将被删除。
那我怎么调用/bin/man?
没有什么可以阻止您再次调用 fork
- 一个进程可以有任意数量的 children、grandchildren 等...
在此特定情况下,您需要 child 到 fork
并使用 man 命令创建 exec
“/bin/xterm”的 grandchildren。并在它们完成时处理清理它们。
基本上,我正在学习 pipe 和 dup 系统调用。
我想从父进程获取命令名称(如 ls、cd、mkdir 等)作为输入,并使用管道将其传递给子进程,子进程应该 打开一个新的 xterm window 并在这个新的 xterm window 中显示管道中记录的命令的手册页。
问题在于 exec 更改了子进程的整个过程映像,因此之后编写的任何代码都将被忽略(如果 exec 成功)。所以如果我将子进程执行到“/bin/xterm”,那么随着进程映像更改为 xterm,子块中的任何 exec 调用都将被删除。
那我怎么调用/bin/man?
没有什么可以阻止您再次调用 fork
- 一个进程可以有任意数量的 children、grandchildren 等...
在此特定情况下,您需要 child 到 fork
并使用 man 命令创建 exec
“/bin/xterm”的 grandchildren。并在它们完成时处理清理它们。