C語(yǔ)言execl()函數(shù):執(zhí)行文件函數(shù)

創(chuàng)新互聯(lián)專業(yè)為企業(yè)提供渝中網(wǎng)站建設(shè)、渝中做網(wǎng)站、渝中網(wǎng)站設(shè)計(jì)、渝中網(wǎng)站制作等企業(yè)網(wǎng)站建設(shè)、網(wǎng)頁(yè)設(shè)計(jì)與制作、渝中企業(yè)網(wǎng)站模板建站服務(wù),10多年渝中做網(wǎng)站經(jīng)驗(yàn),不只是建網(wǎng)站,更提供有價(jià)值的思路和整體網(wǎng)絡(luò)服務(wù)。
相關(guān)函數(shù):fork, execle, execlp, execv, execve, execvp
頭文件:#include unistd.h
定義函數(shù):int execl(const char * path, const char * arg, ...);
函數(shù)說(shuō)明:execl()用來(lái)執(zhí)行參數(shù)path 字符串所代表的文件路徑, 接下來(lái)的參數(shù)代表執(zhí)行該文件時(shí)傳遞過(guò)去的argv(0), argv[1], ..., 最后一個(gè)參數(shù)必須用空指針(NULL)作結(jié)束.
返回值:如果執(zhí)行成功則函數(shù)不會(huì)返回, 執(zhí)行失敗則直接返回-1, 失敗原因存于errno 中.
范例
#include unistd.h
main()
{
execl("/bin/ls", "ls", "-al", "/etc/passwd", (char *)0);
}
執(zhí)行:
/*執(zhí)行/bin/ls -al /etc/passwd */
-rw-r--r-- 1 root root 705 Sep 3 13 :52 /etc/passwd
main()函數(shù)稱之為主函數(shù),一個(gè)C程序總是從main()函數(shù)開(kāi)始執(zhí)行的,但是不一定在main函數(shù)最后結(jié)束。
在 main() 之后的最后一條語(yǔ)句結(jié)束后,程序還要運(yùn)行一些代碼,以正常返回操作系統(tǒng)。main函數(shù)執(zhí)行完后還執(zhí)行其他語(yǔ)句,
有時(shí)候需要有一種與程序退出方式無(wú)關(guān)的方法來(lái)進(jìn)行程序退出時(shí)的必要處理,方法就是用atexit()函數(shù)來(lái)注冊(cè)程序正常終止時(shí)要被調(diào)用的函數(shù),atexit()函數(shù)的參數(shù)是一個(gè)函數(shù)指針,函數(shù)指針指向一個(gè)沒(méi)有參數(shù)也沒(méi)有返回值的函數(shù),它的原型是:
int atexit(void (*)(void));
擴(kuò)展資料
main函數(shù)的使用
示例:
#include stdlib.h
#include stdio.h
void fn1(void);
void fn2(void);
int main(void)
{
atexit(fn1);
atexit(fn2);
printf("main exit ...\n");
return 0;
}
void fn1()
{
printf("calling fn1()...\n");
}
void fn2()
{
printf("calling fn2()...\n");
}
參考資料來(lái)源:百度百科—main函數(shù)
C語(yǔ)言中,函數(shù)調(diào)用的一般形式為:
函數(shù)名(實(shí)際參數(shù)表)
對(duì)無(wú)參函數(shù)調(diào)用時(shí)則無(wú)實(shí)際參數(shù)表。實(shí)際參數(shù)表中的參數(shù)可以是常數(shù)、變量或其它構(gòu)造類型數(shù)據(jù)及表達(dá)式。各實(shí)參之間用逗號(hào)分隔。
#includestdio.h
int?fun(int?x,?int?y);?//?函數(shù)聲明,如果函數(shù)寫(xiě)在被調(diào)用處之前,可以不用聲明
void?main()
{
int?a=1,?b=2,?c;
c?=?fun(a,?b);?//?函數(shù)的調(diào)用,調(diào)用自定義函數(shù)fun,其中a,b為實(shí)際參數(shù),傳遞給被調(diào)用函數(shù)的輸入值
}
//?自定義函數(shù)fun
int?fun(int?x,?int?y)??//?函數(shù)首部
{??//?{}中的語(yǔ)言為函數(shù)體
return?xy???x?:?y;??//?返回x和y中較大的一個(gè)數(shù)
}
擴(kuò)展資料
C語(yǔ)言中不允許作嵌套的函數(shù)定義。因此各函數(shù)之間是平行的,不存在上一級(jí)函數(shù)和下一級(jí)函數(shù)的問(wèn)題。但是C語(yǔ)言允許在一個(gè)函數(shù)的定義中出現(xiàn)對(duì)另一個(gè)函數(shù)的調(diào)用。
這樣就出現(xiàn)了函數(shù)的嵌套調(diào)用。即在被調(diào)函數(shù)中又調(diào)用其它函數(shù)。這與其它語(yǔ)言的子程序嵌套的情形是類似的。其關(guān)系可表示如圖。
圖表示了兩層嵌套的情形。其執(zhí)行過(guò)程是:執(zhí)行main函數(shù)中調(diào)用a函數(shù)的語(yǔ)句時(shí),即轉(zhuǎn)去執(zhí)行a函數(shù),在a函數(shù)中調(diào)用b 函數(shù)時(shí),又轉(zhuǎn)去執(zhí)行b函數(shù),b函數(shù)執(zhí)行完畢返回a函數(shù)的斷點(diǎn)繼續(xù)執(zhí)行,a函數(shù)執(zhí)行完畢返回main函數(shù)的斷點(diǎn)繼續(xù)執(zhí)行。
參考資料:函數(shù)調(diào)用_百度百科
前面給定一個(gè)接收字符的變量,比如c,
switch(c)
{
case 'a':A;break;
case 'b':B;break;
.
.
.
}
一個(gè)c語(yǔ)言程序的執(zhí)行,從main函數(shù)中的指令開(kāi)始執(zhí)行。
一個(gè)程序,無(wú)論復(fù)雜或簡(jiǎn)單,總體上都是一個(gè)“函數(shù)”;這個(gè)函數(shù)就稱為“main()
函數(shù)”,也就是“主函數(shù)”。比如有個(gè)“做菜”程序,那么“
做菜
”這個(gè)過(guò)程就是“主函數(shù)”。在主函數(shù)中,根據(jù)情況,你可能還需要調(diào)用“買(mǎi)菜,切菜,炒菜”等子函數(shù)。
main函數(shù)在程序中大多數(shù)是必須存在的,但是依然有例外情況,比如windows編程中可以編寫(xiě)一個(gè)動(dòng)態(tài)鏈接庫(kù)(dll)模塊,這是其他windows程序可以使用的代碼。由于dll模塊不是獨(dú)立的程序,因此不需要main函數(shù)。再比如,用于專業(yè)環(huán)境的程序-----如機(jī)器人中的控制芯片--可能不需要main函數(shù)。
因?yàn)镃語(yǔ)言程序是從main函數(shù)開(kāi)始執(zhí)行的,而不是從第一個(gè)定義的函數(shù)開(kāi)始執(zhí)行的。操作方法如下:
1、首先在電腦上打開(kāi)編輯軟件,然后點(diǎn)擊創(chuàng)建頭文件。
2、寫(xiě)C語(yǔ)言標(biāo)準(zhǔn)頭文件#includestdio.h 。
3、寫(xiě)main函數(shù)void main(){}。
4、寫(xiě)輸出函數(shù)printf("Hello World");。
5、運(yùn)行結(jié)果,就完成了。
分享題目:c語(yǔ)言程序執(zhí)行函數(shù),c語(yǔ)言程序執(zhí)行函數(shù)是什么
鏈接分享:http://chinadenli.net/article38/dsshepp.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供小程序開(kāi)發(fā)、品牌網(wǎng)站建設(shè)、網(wǎng)站改版、網(wǎng)站建設(shè)、手機(jī)網(wǎng)站建設(shè)、自適應(yīng)網(wǎng)站
聲明:本網(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)