如何更改C语言程序中的shell目录?

时间:2016-11-01 09:06:52

标签: c linux shell directory chdir

当我使用chdir()更改当前目录时,程序关闭时程序不会更改。那么如何在使用chdir()并将程序终止后将chdir()应用于Shell?

1 个答案:

答案 0 :(得分:3)

你不能这样做(从C程序中更改你的父shell目录)。当前目录是每个process的属性,并且您的shell在与程序不同的进程中运行(因此shell进程和程序的进程都有自己的当前目录)。

阅读Advanced Linux Programming。它有几个与您的问题相关的章节。

也许你可能会添加一些 shell函数(例如进入你的~/.bashrc ...),这可能会使用eval来运行你的C程序(它会输出一些{ {1}}命令,shell的cdeval内置函数将在相同的 shell进程中处理); BTW ssh-agent可能会鼓舞人心。实际上,如果你是新手,我不推荐这条路线。

PS。你真的应该激励你的问题并提供很多更多的背景;它闻起来像XY problem