在C中,我如何*模拟*更改父进程的工作目录?

时间:2015-01-04 22:10:36

标签: c unix

看起来像我cannot change the working directory of the parent process,但是有什么方法可以模拟这个吗?我正在通过编写命令行工具x来学习C,该工具允许用户使用自定义命令导航文件系统。是否可以编写类似x enter [directory]然后x look的内容,并获得与cd [directory]相同的内容,然后ls

我唯一的想法是在每个命令之前/之后读取/写入某个.config文件,这是一种在多个x执行中管理状态的方法。

我意识到这是我自己制作的一个问题,但我在使用C时玩得很开心,并且不想放弃我的想法来创建一个包含Unix内置函数的基本文件系统遍历的工具。

1 个答案:

答案 0 :(得分:1)

我曾为这样的设计做过多年前的事情(我之所以称它为鼠标)。第一次启动时,它会生成一个从fifo读取的后台进程。所有其他命令都通过fifo传入,并从后台进程执行。

保持fifo开放存在一些困难。 tail -f在常规文件上可能更容易。这些天,我用某种插座设计它,但这是一整套蠕虫。