中文字幕日韩精品一区二区免费_精品一区二区三区国产精品无卡在_国精品无码专区一区二区三区_国产αv三级中文在线

c語言函數接收環(huán)境變量 c語言接受參數

C語言環(huán)境變量問題

execve(執(zhí)行文件)

讓客戶滿意是我們工作的目標,不斷超越客戶的期望值來自于我們對這個行業(yè)的熱愛。我們立志把好的技術通過有效、簡單的方式提供給客戶,將通過不懈努力成為客戶在信息化領域值得信任、有價值的長期合作伙伴,公司提供的服務項目有:域名注冊、虛擬空間、營銷軟件、網站建設、漳縣網站維護、網站推廣。

在父進程中fork一個子進程,在子進程中調用exec函數啟動新的程序。exec函數一共有六個,其中execve為內核級系統(tǒng)調用,其他(execl,execle,execlp,execv,execvp)都是調用execve的庫函數。

表頭文件

#includeunistd.h

定義函數

int execve(const char * filename,char * const argv[ ],char * const envp[ ]);

函數說明

execve()用來執(zhí)行參數filename字符串所代表的文件路徑,第二個參數是利用數組指針來傳遞給執(zhí)行文件,并且需要以空指針(NULL)結束,最后一個參數則為傳遞給執(zhí)行文件的新環(huán)境變量數組。

返回值

如果執(zhí)行成功則函數不會返回,執(zhí)行失敗則直接返回-1,失敗原因存于errno 中。

錯誤代碼 EACCES

1. 欲執(zhí)行的文件不具有用戶可執(zhí)行的權限。

2. 欲執(zhí)行的文件所屬的文件系統(tǒng)是以noexec 方式掛上。

3.欲執(zhí)行的文件或script翻譯器非一般文件。

EPERM

1.進程處于被追蹤模式,執(zhí)行者并不具有root權限,欲執(zhí)行的文件具有SUID 或SGID 位。

2.欲執(zhí)行的文件所屬的文件系統(tǒng)是以nosuid方式掛上,欲執(zhí)行的文件具有SUID 或SGID 位元,但執(zhí)行者并不具有root權限。

E2BIG 參數數組過大

ENOEXEC 無法判斷欲執(zhí)行文件的執(zhí)行文件格式,有可能是格式錯誤或無法在此平臺執(zhí)行。

EFAULT 參數filename所指的字符串地址超出可存取空間范圍。

ENAMETOOLONG 參數filename所指的字符串太長。

ENOENT 參數filename字符串所指定的文件不存在。

ENOMEM 核心內存不足

ENOTDIR 參數filename字符串所包含的目錄路徑并非有效目錄

EACCES 參數filename字符串所包含的目錄路徑無法存取,權限不足

ELOOP 過多的符號連接

ETXTBUSY 欲執(zhí)行的文件已被其他進程打開而且正把數據寫入該文件中

EIO I/O 存取錯誤

ENFILE 已達到系統(tǒng)所允許的打開文件總數。

EMFILE 已達到系統(tǒng)所允許單一進程所能打開的文件總數。

EINVAL 欲執(zhí)行文件的ELF執(zhí)行格式不只一個PT_INTERP節(jié)區(qū)

EISDIR ELF翻譯器為一目錄

ELIBBAD ELF翻譯器有問題。

范例

#includeunistd.h

main()

{

char * argv[ ]={“l(fā)s”,”-al”,”/etc/passwd”,(char *)0};

char * envp[ ]={“PATH=/bin”,0}

execve(“/bin/ls”,argv,envp);

}

執(zhí)行

-rw-r--r-- 1 root root 705 Sep 3 13 :52 /etc/passwd

c語言如何設置環(huán)境變量(dos下)

system()函數

如system("path"),在C中打印環(huán)境變量。

path

命令見path

/?

具體使用方法見下:

stdlib.h

int

system(const

char

*s)

system函數將字符串s傳遞給系統(tǒng)環(huán)境運行。如果s是NULL,如果存在命令處理器system返回非0。如果s非NULL,system返回的值與執(zhí)行的環(huán)境相關。

參考資料:the

C

programming

language

如何設置C語言里的環(huán)境變量?

C語言編譯器本身需要環(huán)境變量支持,比如配置編譯器可執(zhí)行文件所在路徑需要設置path環(huán)境變量等。

這時可以通過在命令行中調用操作系統(tǒng)對應設置環(huán)境變量的命令,實現設置。

a. 在windows/dos下,設置命令為set, 引用變量為%變量名%,于是設置path的可以寫作set path=xxxx;%path%,這樣就在path變量中增加了xxxx路徑。

在C語言運行中,需要設置環(huán)境變量。這時可以使用system函數,調用系統(tǒng)命令來實現。

system("set my_env=env_string");

是在windows下增加一個my_env的環(huán)境變量,值為env_string。

而在linux下,該設置寫作

system("export my_env=env_string");

擴展資料:

C語言中環(huán)境變量操作

getenv(取得環(huán)境變量內容)

相關函數 putenv,setenv,unsetenv

putenv(改變或增加環(huán)境變量)

setenv(改變或增加環(huán)境變量)

對環(huán)境變量操作

#includestdlib.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”));

}

新聞標題:c語言函數接收環(huán)境變量 c語言接受參數
URL鏈接:http://www.rwnh.cn/article10/dopppgo.html

成都網站建設公司_創(chuàng)新互聯,為您提供品牌網站設計、網站設計、網站策劃、、營銷型網站建設、外貿網站建設

廣告

聲明:本網站發(fā)布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創(chuàng)新互聯

網站建設網站維護公司
淮安市| 陇南市| 平武县| 永丰县| 北碚区| 高邑县| 若尔盖县| 清水河县| 三都| 璧山县| 清镇市| 烟台市| 东海县| 芦山县| 泸州市| 临夏市| 监利县| 海丰县| 汨罗市| 饶阳县| 额尔古纳市| 平潭县| 福清市| 阜新市| 循化| 岑巩县| 河间市| 石泉县| 盐源县| 黄梅县| 洞口县| 栾城县| 安阳县| 渑池县| 铅山县| 临洮县| 靖江市| 汕头市| 临汾市| 台中县| 锡林郭勒盟|