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)
相關文章
- 簡單介紹Linux環境變數檔案Linux變數
- Day01-Java簡介、環境、常量、變數Java變數
- Linux環境變數配置Linux變數
- Linux常用環境變數Linux變數
- 簡述SHELL全域性環境變數與局變環境變數變數
- Linux配置環境變數$PATHLinux變數
- linux java環境變數配置LinuxJava變數
- linux工具配置環境變數Linux變數
- Linux設定環境變數Linux變數
- linux系統環境變數Linux變數
- JDK的簡介、安裝與環境變數的配置JDK變數
- Linux中bash shell環境變數Linux變數
- linux系統設定環境變數Linux變數
- Linux下Java環境變數的配置LinuxJava變數
- 14_Linux環境變數講解Linux變數
- 如何管理你的 Linux 環境變數Linux變數
- Linux環境變數問題彙總Linux變數
- Linux 環境變數配置全攻略Linux變數
- Linux中的環境變數知多少?Linux變數
- 在Linux中,什麼是環境變數?如何設定和檢視環境變數?Linux變數
- GBASEDBTSERVER 環境變數7GBASEDBTSHMBASE 環境變數 (UNIX™)Server變數
- Linux環境變數詳解與應用Linux變數
- Linux字符集環境變數設定Linux變數
- [20240816]oracle21c環境變數ORACLE_PATH與SQLPATH(linux).txtOracle變數SQLLinux
- 函式式API簡介函式API
- Java 環境變數Java變數
- jdk環境變數JDK變數
- postman環境變數Postman變數
- DOS環境變數變數
- 配置環境變數變數
- env 環境變數變數
- 環境變數path變數
- linux3-管道符、重定向、環境變數Linux變數
- 【推薦】配置Linux環境變數的常用方法!Linux變數
- jdk在linux下安裝、配置環境變數JDKLinux變數
- 在Linux下檢視和修改環境變數Linux變數
- 利用PATH環境變數 - 提升linux許可權~?變數Linux
- Linux:修改系統 php 預設環境變數LinuxPHP變數