欧美一区二区三区老妇人-欧美做爰猛烈大尺度电-99久久夜色精品国产亚洲a-亚洲福利视频一区二区

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

C語(yǔ)言環(huán)境變量問(wèn)題

execve(執(zhí)行文件)

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

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

表頭文件

#includeunistd.h

定義函數(shù)

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

函數(shù)說(shuō)明

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

返回值

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

錯(cuò)誤代碼 EACCES

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

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

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

EPERM

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

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

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

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

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

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

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

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

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

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

ELOOP 過(guò)多的符號(hào)連接

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

EIO I/O 存取錯(cuò)誤

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

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

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

EISDIR ELF翻譯器為一目錄

ELIBBAD ELF翻譯器有問(wèn)題。

范例

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

system()函數(shù)

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

path

命令見(jiàn)path

/?

具體使用方法見(jiàn)下:

stdlib.h

int

system(const

char

*s)

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

參考資料:the

C

programming

language

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

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

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

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

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

system("set my_env=env_string");

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

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

system("export my_env=env_string");

擴(kuò)展資料:

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

getenv(取得環(huán)境變量?jī)?nèi)容)

相關(guān)函數(shù) putenv,setenv,unsetenv

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

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

對(duì)環(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語(yǔ)言函數(shù)接收環(huán)境變量 c語(yǔ)言接受參數(shù)
URL鏈接:http://www.chinadenli.net/article10/dopppgo.html

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

廣告

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

網(wǎng)站建設(shè)網(wǎng)站維護(hù)公司