久久国产成人av_抖音国产毛片_a片网站免费观看_A片无码播放手机在线观看,色五月在线观看,亚洲精品m在线观看,女人自慰的免费网址,悠悠在线观看精品视频,一级日本片免费的,亚洲精品久,国产精品成人久久久久久久

分享

linux中system和exec函數(shù)的區(qū)別

 sven_ 2013-08-16

system是用shell來(lái)調(diào)用程序=fork+exec+waitpid,,而exec是直接讓你的程序代替用來(lái)的程序運(yùn)行。


system 是在單獨(dú)的進(jìn)程中執(zhí)行命令,,完了還會(huì)回到你的程序中,。而exec函數(shù)是直接在你的進(jìn)程中執(zhí)行新的程序,,新的程序會(huì)把你的程序覆蓋,,除非調(diào)用出錯(cuò),,否則你再也回不到exec后面的代碼,就是說(shuō)你的程序就變成了exec調(diào)用的那個(gè)程序了,。


看一下,,下面的例子.


例子1


---------------------------------
system("your_program");
printf("You can see me! ");
---------------------------------


例子2


---------------------------------
exec("your_program");
printf("You can't see me! ");
---------------------------------


在例子1中,在你的程序執(zhí)行完畢以后,,會(huì)執(zhí)行printf語(yǔ)句,。
在例子2中,由于exec將程序your_program代替了本身,,因此程序不再會(huì)執(zhí)行printf語(yǔ)句,。


Linux下,,exec通常會(huì)和fork語(yǔ)句一起用,。


看下面的這個(gè)例子
--------------------------------------------
pid_t pid = fork();
if (pid < 0) {
printf(“fork error!”);
exit(-1);
} else if (pid == 0) {
//
這里是子進(jìn)程
printf("I'm son! ");
//
執(zhí)行其它的程序
exec("your_program");
} else {
//
這里是父進(jìn)程
printf("i'm father!");
wait();//
等待子進(jìn)程結(jié)束后返回
exit(0);
}


    本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶發(fā)布,,不代表本站觀點(diǎn),。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式,、誘導(dǎo)購(gòu)買(mǎi)等信息,謹(jǐn)防詐騙,。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,,請(qǐng)點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶 評(píng)論公約

    類似文章 更多