[英]change terminal directory using c language
我正在尝试使用C语言更改Linux终端的目录。 事情是我正在使用线程。 我试图使用chdir(),但它不起作用,是的chdir()也是一个过程函数。 实际上我要实现的是,我正在尝试制作一个多线程程序,该程序可以编译Linux内核,并且如果不指定目录就无法实现(我已经尝试了不指定目录但失败了:))
有人可以帮我解决这个问题吗?
提前致谢 :)
你不能! 没有进程可以更改另一个的工作目录。 一个进程只能更改自己的WD。 当您启动外部命令(例如C程序)时,将启动一个新进程。 Shell的cd
命令是内部命令。
尚不清楚您要实现的目标。 看来您似乎希望以某种方式使用C程序来模拟脚本(或make
工具)的行为,也就是说,使编写的C程序启动新进程(使用system
或使用fork
和exec*
的组合) 。 如果真是这样,那么您真正想要的是修改这些进程的环境变量,以使它们找到所需的文件。 分叉的进程将继承其父进程的环境,因此您需要使用getenv
, putenv
, setenv
和unsetenv
来检索和设置要添加,更新或删除的环境变量。 或者您可以使用特定的execve
, execvpe
,它们使您可以确切指定新程序应使用的环境。
引用:
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.