成人午夜视频全免费观看高清-秋霞福利视频一区二区三区-国产精品久久久久电影小说-亚洲不卡区三一区三区一区

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

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

execve(執(zhí)行文件)

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

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

表頭文件

#includeunistd.h

定義函數(shù)

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

函數(shù)說明

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

返回值

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

錯誤代碼 EACCES

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

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

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

EPERM

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

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

E2BIG 參數(shù)數(shù)組過大

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

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

ENAMETOOLONG 參數(shù)filename所指的字符串太長。

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

ENOMEM 核心內(nèi)存不足

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

EACCES 參數(shù)filename字符串所包含的目錄路徑無法存取,權(quán)限不足

ELOOP 過多的符號連接

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

EIO I/O 存取錯誤

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

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

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語言如何設(shè)置環(huán)境變量(dos下)

system()函數(shù)

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

path

命令見path

/?

具體使用方法見下:

stdlib.h

int

system(const

char

*s)

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

參考資料:the

C

programming

language

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

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

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

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

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

system("set my_env=env_string");

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

而在linux下,該設(shè)置寫作

system("export my_env=env_string");

擴展資料:

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

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

相關(guān)函數(shù) 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”));

}

新聞標(biāo)題:c語言函數(shù)接收環(huán)境變量 c語言接受參數(shù)
URL鏈接:http://jinyejixie.com/article10/dopppgo.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供品牌網(wǎng)站設(shè)計、網(wǎng)站設(shè)計、網(wǎng)站策劃、營銷型網(wǎng)站建設(shè)、外貿(mào)網(wǎng)站建設(shè)

廣告

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

網(wǎng)站建設(shè)網(wǎng)站維護公司
乌鲁木齐县| 铁力市| 平远县| 宜章县| 姜堰市| 太湖县| 富裕县| 天镇县| 九台市| 瑞丽市| 邹平县| 韶关市| 依兰县| 宣武区| 昌邑市| 科尔| 安仁县| 河东区| 宁远县| 中西区| 寿宁县| 三门峡市| 汾阳市| 包头市| 嘉善县| 潜山县| 上饶市| 高青县| 泰宁县| 通化市| 高淳县| 正镶白旗| 铁力市| 中超| 若羌县| 罗平县| 红原县| 句容市| 特克斯县| 白水县| 金寨县|