如何更改將影響終端的C程序中的目錄。如何從C文件更改終端中的目錄
其實不要告訴系統(「」)功能或chdir(「」)功能。這些工作只是在C的過程或子殼。
說我正在執行一個C程序從一個進程ID爲10223的bash shell。 那麼,我可以寫一個C代碼,將影響10223進程是一個bash shell,其路徑將被我的C程序改變。
#include<stdio.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <time.h>
#include <stdlib.h>
#include <string.h>
#include<dirent.h>
#include <unistd.h>
using namespace std ;
int main(){
system("pwd") ;
chdir("test");
system("pwd") ;
return 0 ;
}
此更改僅在C代碼運行之前進行。從C代碼返回後,我該如何保持改變當前的環境。
UPD 1:
在終端如果我寫PS然後我得到以下輸出。現在我可以有任何功能來通過10991進程執行命令。我認爲這解決了這個問題。
[email protected]:~$ ps
PID TTY TIME CMD
10991 pts/14 00:00:00 bash
11005 pts/14 00:00:00 ps
您不能更改另一個進程的當前工作目錄。你爲什麼要這麼做? –
好吧我正在寫一個C代碼,我可以通過inode值更改目錄。可能嗎 ? – Kryptonyte
畢竟,你爲什麼需要通過inode光盤?你知道inode而不是路徑的情況是怎樣的? –