基本上,我在学习pipe和dup系统调用。
我想从父进程输入一个命令名(如ls、cd、mkdir等)并使用管道将其传递给子进程,子进程应该打开一个新的xterm窗口,并在这个新的xterm窗口中显示管道中记录的命令的手册页。
问题是exec更改了子进程的整个映像,因此后面写的任何代码都会被忽略(如果exec成功的话),所以如果我将子进程执行到“/bin/xterm”,那么子块中的任何exec调用都会被删除,因为进程映像更改为xterm。
那我该怎么称呼/bin/man?
最佳答案
没有什么能阻止你再次调用fork
-一个进程可以有任意数量的子、孙等。。。
在这个特定的例子中,您需要子元素fork
并用man命令创建exec
“/bin/xterm”的孙子元素。完成后还要清理。
关于c - 如何打开一个新的xterm窗口并使用fork-exec调用在该窗口上运行命令? (仅限C程序),我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/41889442/