簡體   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