簡體   English   中英

C ++ getenv總是返回null值

[英]C++ getenv always returns null value

我剛剛添加了環境變量“DataDir”,但getenv函數仍然返回null值。

這是我的代碼:const char * ret = getenv(“DataDir”);

我重新啟動了電腦,完成了。

你還記得在運行程序之前導出變量嗎? 例如,如果你在linux上使用bash shell,你通常應該使用export DataDir="..."

在Windows上,如果使用系統設置窗口設置環境變量,它將不會立即傳播到所有正在運行的程序。 如果“我重新啟動計算機並完成了”。 意思是“重新啟動計算機解決了問題”,然后我相信這解釋了問題。 更改環境變量后,嘗試關閉所有程序,然后啟動CMD會話(或visual studio)並再次運行該程序

你在Windows上運行嗎? 您是否通過控制面板設置了環境變量? 如果是這樣,那么只會影響您更改設置啟動的進程(啟動的程序)。 如果您從命令提示符運行,並且命令提示符未繼承新的環境變量,那么您的程序也不會繼承它。

重新啟動后,所有新進程都將繼承新的環境變量。

另一方面,如果設置變量然后運行程序:

C:\>set DataDir=blah
C:\>.\my_program

然后你的程序將繼承變量(但它不會在重新啟動時持續存在)。

類似的考慮適用於Linux和其他系統,但細節不同。

請注意,我只是根據您報告的症狀猜測您正在使用的系統。 將來,在問題中提供這些信息會有所幫助(如果不相關,我們可以忽略它)。

暫無
暫無

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

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