簡體   English   中英

如何在 c 編程語言中從 $PATH 添加和刪除文件名?

[英]How to add and remove file name from $PATH in c programming language?

我發現這個鏈接提供了如何在$PATH中添加文件名,但在 c 編程語言中沒有。 當我運行代碼時,它只是打印出原始路徑而不是修改后的路徑。 有趣的是,當我輸入system("echo $PATH:~/opt/bin")時,它成功顯示了修改后的路徑。 另外,我不確定如何從修改后的路徑中刪除相同的文件名( ~/opt/bin )。

我的代碼在這里:

int main (void) {

  system("echo $PATH");
  system("export PATH=$PATH:~/opt/bin");
  system("echo $PATH"); //prints out the original $PATH

}

不幸的是, getenvsetenv不修改路徑。 當我在這里使用以下代碼時,

int main() {
    char *oldenv = strdup(getenv("PATH")); // Make a copy of your PATH
    setenv("PATH", "$PATH:~/opt/bin", 1); // Overwrite it

    system("echo $PATH"); // Outputs "$PATH:~/opt/bin"

    setenv("PATH", oldenv, 1); // Restore old PATH
    free(oldenv); // Don't forget to free!

    system("echo $PATH"); // Outputs your actual PATH
}

代碼打印出硬編碼的$PATH:~/opt/bin而不是通常的$PATH命令。

感謝@clpgr,我可以編寫以下代碼將 $PATH 的結果保存在 char 字符串中。

int main (void) {

  char* path;
  path = getenv("PATH");
  if (path)
  {
    printf(path);    
  }  
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM