繁体   English   中英

使用C语言更改终端目录

[英]change terminal directory using c language

我正在尝试使用C语言更改Linux终端的目录。 事情是我正在使用线程。 我试图使用chdir(),但它不起作用,是的chdir()也是一个过程函数。 实际上我要实现的是,我正在尝试制作一个多线程程序,该程序可以编译Linux内核,并且如果不指定目录就无法实现(我已经尝试了不指定目录但失败了:))

有人可以帮我解决这个问题吗?

提前致谢 :)

你不能! 没有进程可以更改另一个的工作目录。 一个进程只能更改自己的WD。 当您启动外部命令(例如C程序)时,将启动一个新进程。 Shell的cd命令是内部命令。

尚不清楚您要实现的目标。 看来您似乎希望以某种方式使用C程序来模拟脚本(或make工具)的行为,也就是说,使编写的C程序启动新进程(使用system或使用forkexec*的组合) 。 如果真是这样,那么您真正想要的是修改这些进程的环境变量,以使它们找到所需的文件。 分叉的进程将继承其父进程的环境,因此您需要使用getenvputenvsetenvunsetenv来检索和设置要添加,更新或删除的环境变量。 或者您可以使用特定的execveexecvpe ,它们使您可以确切指定新程序应使用的环境。

引用:

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM