C++:getenv setenv -- 獲取設置系統環境變量

C++:getenv & setenv -- 獲取&設置系統環境變量
1. getenv:取得環境變量內容
頭文件- #include<stdlib.h>
格式: char * getenv(const char *name);
意義: getenv()用來取得參數name環境變量的內容。

@param name為環境變量的名稱,如果該變量存在則會返回指向該內容的指針。環境變量的格式為name=value。
return 執行成功則返回指向該內容的指針,找不到符合的環境變量名稱則返回NULL。

【注】:相關函數 putenv,setenv,unsetenv;

示例

?
#include<stdlib.h>?
mian()?
{?
    char *p;?
    if((p = getenv(“USER”)))?
      printf(“USER=%s\n”,p);?
}
執行后顯示:????USER = root

2. putenv:改變或增加環境變量
?int putenv(const char * string);
意義:putenv()用來改變或增加環境變量的內容。

@param:?string的格式為name=value,如果該環境變量原先存在,則變量內容會依參數string改變,否則此參數內容會成為新的環境變量。
reutrn 執行成功則返回0,有錯誤發生則返回-1。
錯誤代碼:ENOMEM 內存不足,無法配置新的環境變量空間。

示例:

#include<stdlib.h>?
main()?
{?
  char *p;?
  if((p = getenv(“USER”)))?
  ? ? printf(“USER =%s\n”,p);?
  putenv(“USER=test”);?
  printf(“USER=%s\n”,getenv(“USER”));?
}
執行 USER=root  USER=test

3.?setenv:改變或增加環境變量
?int setenv(const char *name,const char * value,int overwrite);

name為環境變量名稱字符串。
value則為變量內容。

overwrite用來決定是否要改變已存在的環境變量。如果overwrite不為0,則改變環境變量原有內容,原有內容會被改為參數value所指的變量內容。如果overwrite為0,且該環境變量已有內容,則參數value會被忽略。
  

reuturn 執行成功則返回0,有錯誤發生時返回-1。

錯誤代碼 ENOMEM 內存不足,無法配置新的環境變量空間

示例

#include<stdlib.h>
main()
{
  char * p;
  if((p=getenv(“USER”)))
  ? ? printf(“USER =%s\n”,p);
  setenv(“USER”,”test”,1);
  printf(“USER=%s\n”,getenv(“USEr”));
  unsetenv(“USER”);
  printf(“USER=%s\n”,getenv(“USER”));
}
結果:

USER = root????????USER = test??????????USER = (null)

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/256885.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/256885.shtml
英文地址,請注明出處:http://en.pswp.cn/news/256885.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

CSS單位和值

顏色值 在網頁中的顏色設置是非常重要&#xff0c;有字體顏色&#xff08;color&#xff09;、背景顏色&#xff08;background-color&#xff09;、邊框顏色&#xff08;border&#xff09;等&#xff0c;設置顏色的方法也有很多種&#xff1a; 1、英文命令顏色 前面幾個小節中…

學習筆記(40):Python實戰編程-文本

立即學習:https://edu.csdn.net/course/play/19711/343102?utm_sourceblogtoedu 文本——人機交互&#xff0c;文本輸入的地方&#xff08;tkinter.Text&#xff08;“需要顯示的文本”&#xff0c;屬性的設置&#xff09;組件類&#xff09; 知識點&#xff1a; 文本輸入 文…

嵌入式linux的調試技術

本章介紹了嵌入式linux的調試技術&#xff0c;例如&#xff0c;設置斷點、逐步跟蹤代碼、輸出調試信息等。 Printk函數用于打印內核調試信息&#xff0c;運行在內核空間&#xff0c;printf函數運行在用戶空間。Printk文件是一個簡單的有4個數字組成的文本文件。 雖然使用Printk…

constexpr的好處

constexpr的好處&#xff1a; 是一種很強的約束&#xff0c;更好地保證程序的正確語義不被破壞。編譯器可以在編譯期對constexpr的代碼進行非常大的優化&#xff0c;比如將用到的constexpr表達式都直接替換成最終結果等。相比宏來說&#xff0c;沒有額外的開銷&#xff0c;但更…

PHP中include()與require()的區別說明

123456789101112131415161718192021222324252627require 的使用方法如 require("MyRequireFile.php"); 。這個函數通常放在 PHP 程序的最前面&#xff0c;PHP 程序在執行前&#xff0c;就會先讀入 require 所指定引入的文件&#xff0c;使它變成 PHP 程序網頁的一部份…

電腦重裝系統重裝不了,老是藍屏,是不是硬盤燒壞了!

藍屏代碼是什么啊裝不了有時候是內存的問題以下內容為百度知道Ctangel個人總結&#xff0c;并非網絡復制&#xff0c;全是個人日常工作中遇到并且明確確定原因的。如需復制請注明出處。這里列舉幾個典型的藍屏故障的原因和解決辦法。一、0X0000000A 這個藍屏代碼和硬件無關&…

學習筆記(41):Python實戰編程-按鈕

立即學習:https://edu.csdn.net/course/play/19711/343103?utm_sourceblogtoedu 按鈕——用于指令的提交作用&#xff0c;如將文本中輸入的信息進行提交等 button tkinter.Button(root,text linlianqin,image photo,compound bottom) 創建了一個圖片按鈕&#xff0c;并且…

第八章讀后感

一&#xff0e;Linux驅動的代碼重用有很多的方法&#xff0c;可以采用標準的C程序的方法將要重用的代碼放在其他的文件&#xff08;在頭文件中聲明&#xff09;中。如果要使用某些功能&#xff0c;include相應的頭文件即可&#xff0c;也可以是另外一種動態重用的方式&#xff…

linux系統基礎優化小結

不用root&#xff0c; 添加普通用戶&#xff0c;通過sudo授權管理 更改默認的遠程ssh服務端口及禁止root用戶遠程登陸 定時自動更新服務器時間 ntpdate 配置yum更新源&#xff0c;從國內更新源下載安裝軟件&#xff0c;如啊里云&#xff0c;163等.http://mirrors.aliyun.com…

iOS8 【xcode6中添加pch全局引用文件】

前沿&#xff1a;xcode6中去掉了pch&#xff0c;為了一些瑣碎的頭文件引用&#xff0c;加快了 編譯速度&#xff01; xcode6之前的版本建項目就自動添加了是這樣的&#xff1a;xcode6后的版本要自己手動的添加步驟如下&#xff1a;1&#xff09; 2)3&#xff09; $(SRCROOT)/pc…

學習筆記(42):Python實戰編程-pyinstaller程序打包

將程序打包可以使得所有Windows帶有python虛擬機的電腦進行使用&#xff0c;打包的內容有代碼加外部資源&#xff08;如logo圖片等&#xff09; 步驟&#xff1a; 1&#xff09;創建程序的代碼 2&#xff09;生成配置文件——用于獲得打包的資源&#xff0c;將資源保存在運行程…

[js]BOM篇

一、什么是BOM BOM&#xff08;Browser Object Model&#xff09;即瀏覽器對象模型。BOM提供了獨立于內容 而與瀏覽器窗口進行交互的對象&#xff1b;由于BOM主要用于管理窗口與窗口之間的通訊&#xff0c;因此其核心對象是window&#xff1b;BOM由一系列相關的對象構成&#x…

透視校正

1、需要解決的問題&#xff1a; 怎么用圖像處理的辦法將梯形轉換為規則的矩形&#xff0c;進行一個視覺的透視校正 2、解決思路&#xff1a; 1&#xff09;先二值化圖像&#xff0c;提取其輪廓&#xff08;其中使用到填充&#xff0c;形態學知識&#xff09; 2&#xff09;…

雜項備忘

svn導出 export LANGzh_CN.UTF-8 && svn --username shuai --password shuai checkout svn://192.168.14.111/safe.qq.com /update/webapps/safe.qq.com mysqlsla --sortc_sum slow.log 本文轉自 liang3391 51CTO博客&#xff0c;原文鏈接:http://blog.51cto.com/liang…

安裝Pywin32后無法正常引用pyd文件

1. 首先在官方下載pywin32 2.下載完成后,無法正常引用pyd文件 3.解決方案: python安裝目錄\Lib\site-packages\pywin32_system32\* 至 C:\Windows\System32 轉載于:https://www.cnblogs.com/MonkeyKingK/p/4731960.html

pyinstaller運行時出現TCLError的錯誤該怎么辦?

1)修改代碼后需要重新按照以上步驟進行&#xff0c;尤其不能忘記了修改配置文件的datas 2)必須得先pyi-makespec -F *.py指定要打包的程序&#xff0c;再修改配置文件&#xff0c;再pyinstaller -F *.spec程序打包 3&#xff09;確保配置文件已經修改成功&#xff0c;即將以下圖…

視覺統計計數方案

1、二值化分割 2、形態學 3、距離變換 4、再進行二值化 4、連通區域計算 輸入&#xff1a; 輸出&#xff1a;printf&#xff08;"統計玉米粒的個數 contours:%d\n",contours);//contours 17

SQL Server 查詢表備注信息的語句

--name 字段名稱--user_type_id --max_length 最大長度--is_nullable 是否允許空--remark 描述SELECT c.name, c.user_type_id, c.max_length, c.is_nullable, remark ex.value FROM sys.columns c inner JOIN sys.extended_properties ex ON ex.major_id c.object_id…

Filezilla 利用私鑰無密碼登錄

Filezilla是常用的FTP客戶端軟件&#xff0c;這里介紹一個用私鑰進行登錄 主機:sftp://yourserver 用戶名&#xff1a;yourname 點擊“編輯”-“設置”菜單打開設置對話框&#xff0c;找到“連接”-“SFTP”設置項 添加密鑰文件(A)”按鈕,添加私鑰文件&#xff0c;彈出對話框&a…

yo angualr-fullstatck 項目打包部署

yoeman使用grunt進行打包部署&#xff0c;直接運行grunt命令即可&#xff0c;期間會對代碼進行檢查&#xff0c;如果存在不規范的地方jshint會指定出來&#xff0e; grunt會對靜態資源進行打包而且對資源文件名進行了MD5作為版本戳&#xff0e; &#xff11;&#xff1a;修改se…