linux c 環境變數函式 getenv putenv 簡介
環境變數相關函式:
getenv()和putenv()
程式功能:編寫一個程式來列印所選的任意環境變數的值;如果給程式傳遞第二個引數,還設定環境變數的值
#include <stdlib.h>
#include <stdio.h>
#include <string.h>
/************************
argc:引數個數(包含程式名)
argv:代表引數自身的字串陣列;
argv[0]為程式名,argv[1]為第1個實際引數 argv[2]為第2個實際引數
************************/
int main(int argc, char *argv[])
{
char *var, *value;
if(argc == 1 || argc > 3) { //確保實際引數只有1個(argc=2)或2個(argc=3)
fprintf(stderr,"usage: environ var [value]\n");
exit(1);
}
var = argv[1]; //第一個實際引數的引數名
value = getenv(var); //第一個實際引數的引數值
if(value) //判斷引數值是否存在
printf("Variable %s has value %s\n", var, value);
else
printf("Variable %s has no value\n", var);
if(argc == 3) { //如果第二個實際引數存在
char *string;
value = argv[2]; //獲取第2個引數的值
string = malloc(strlen(var)+strlen(value)+2); //為第二個引數的“引數名=引數值”開闢空間(+2表示“=”和空格)
if(!string) { //如果開闢空間失敗
fprintf(stderr,"out of memory\n");
exit(1);
}
strcpy(string,var);
strcat(string,"=");
strcat(string,value);
printf("Calling putenv with: %s\n",string);
if(putenv(string) != 0) { //putenv()成功返回0.若環境變數設定失敗
fprintf(stderr,"putenv failed\n");
free(string); //釋放開闢的記憶體空間
exit(1);
}
value = getenv(var);
if(value)
printf("New value of %s is %s\n", var, value);
else
printf("New value of %s is null??\n", var);
}
exit(0);
}
注意:環境僅對程式本身有效。在程式裡做的環境變數更改不會反映到外部環境,這是因為變數的值不會從子程式(你的程式)傳播到父程式(shell)
相關文章
- C語言putenv()函式:改變或增加環境變數C語言函式變數
- C語言getenv()函式:取得環境變數內容C語言函式變數
- linux c 環境變數相關函式Linux變數函式
- 簡單介紹Linux環境變數檔案Linux變數
- 環境變數與TO DATE函式變數函式
- linux 環境變數介紹Linux變數
- linux DISPLAY環境變數介紹Linux變數
- Day01-Java簡介、環境、常量、變數Java變數
- 簡述SHELL全域性環境變數與局變環境變數變數
- Linux 新增環境變數和刪除環境變數Linux變數
- 【Linux】環境變數!!!Linux變數
- Linux 環境變數Linux變數
- linux環境顯示全部環境變數Linux變數
- Linux環境變數配置Linux變數
- Linux常用環境變數Linux變數
- JAVA環境變數配置介紹Java變數
- JDK的簡介、安裝與環境變數的配置JDK變數
- javascript函式和變數宣告提前簡單介紹JavaScript函式變數
- 環境變數{Linux環境(也稱為Shell環境)}(轉)變數Linux
- c#環境變數設定C#變數
- linux java環境變數配置LinuxJava變數
- Linux配置環境變數$PATHLinux變數
- linux系統環境變數Linux變數
- Linux設定環境變數Linux變數
- linux配置jdk環境變數LinuxJDK變數
- [Linux] 檢視環境變數Linux變數
- Linux - 新增PATH環境變數Linux變數
- linux配置java環境變數LinuxJava變數
- Linux 環境變數設定Linux變數
- linux工具配置環境變數Linux變數
- Bash 是如何從環境變數中匯入函式的變數函式
- nls引數、環境變數以及函式等起作用的順序!變數函式
- Linux下將PHP新增到環境變數,將Mysql加入環境變數。LinuxPHP變數MySql
- javascript函式讀取變數作用域簡單介紹JavaScript函式變數
- linux基礎——shell變數(本地變數和環境變數)Linux變數
- 環境變數變數
- Linux中bash shell環境變數Linux變數
- 修改linux下mysql環境變數LinuxMySql變數