[問題] 要如何在c code執行setenv

看板Linux作者 (佛羅倫斯)時間8年前 (2015/11/01 17:22), 編輯推噓1(219)
留言12則, 4人參與, 最新討論串1/1
我的程式是寫execlp("setenv","setenv","PATH","bin/",NULL); 但是執行的時候沒反應 我猜是因為我setenv的檔案位置寫的不對 所以我必須知道setenv的檔案位置 所以我在PATH的各個檔案位置路徑用find尋找setenv 但是都找不到 甚至我直接查根目錄 find / -name "setenv" 過程中有出現一些find:permission denied 結果也找不到setenv的位置。 想請問有甚麼方法可以查setenv的位置? 還是說不能用execlp()開setenv,要用system()? (我試過寫成 system("setenv PATH bin/") 也不行) -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 140.115.53.27 ※ 文章網址: https://www.ptt.cc/bbs/Linux/M.1446369740.A.916.html

11/01 17:30, , 1F
env是程式執前行被配置好的變數,該程式最多能影響child
11/01 17:30, 1F

11/01 17:30, , 2F
process,要改變自己的env variables,簡單講DOS還可能,其
11/01 17:30, 2F

11/01 17:31, , 3F
他有保護的OS,就早睏早眠
11/01 17:31, 3F

11/01 17:32, , 4F
看你的文章,你對env還不是很瞭解,建議你先在shell中再開
11/01 17:32, 4F

11/01 17:32, , 5F
新shell,然後設env variables,再exit child shell,看看母
11/01 17:32, 5F

11/01 17:33, , 6F
shell有看到什麼鬼? 這概念在working directory也類似
11/01 17:33, 6F

11/01 17:48, , 7F
stdlib.h 裡有 setenv() 可用
11/01 17:48, 7F

11/01 19:20, , 8F
第2行更正:要改變自己的 -> 要改變parent的
11/01 19:20, 8F

11/01 19:46, , 9F
可以請您先把 shell 內部命令、環境變數、子 process 的
11/01 19:46, 9F

11/01 19:46, , 10F
概念搞清楚嗎?
11/01 19:46, 10F

11/01 23:18, , 11F
請你不要再問蠢問題了 問題再蠢都回答你了 結果你刪掉
11/01 23:18, 11F

11/01 23:19, , 12F
要是我現在還是板主 一定把你永久水桶
11/01 23:19, 12F
文章代碼(AID): #1MDTdCaM (Linux)