Linux 進(jìn)程替換(exec函數(shù))實(shí)現(xiàn)代碼
Linux 進(jìn)程替換(exec函數(shù))實(shí)現(xiàn)代碼
# include<stdio.h> #include<stdlib.h> #include<unistd.h> #include<fcntl.h> #include<sys/types.h> #include<sys/stat.h> #include<string.h> int main() { pid_t id=fork(); if(id==0) { printf("child is running\n"); sleep(1); char* env[]={"MYENV=/A/B/C/D/AAAA",NULL}; char* argv[]={"ls","-l","-n","-i",NULL}; // execl("/bin/ls","ls","-l","-n","-i",NULL); // execlp("ls","ls","-l","-n","-i",NULL); // execv("/bin/ls",argv); // execvp("ls",argv); // execle("./myenv","myenv",NULL,env); execve("./myenv",argv,env); printf("child id done\n"); //exec成功的話不執(zhí)行此語(yǔ)句 exit(1); } else { pid_t ret=waitpid(id, NULL,0); if(ret>0) { printf("father wait success\n"); } else{ printf("child quit not normal\n"); } } return 0; }
下圖就是execl execlp execv execvp的結(jié)果圖
下圖是execle execve的結(jié)果圖
感謝閱讀,希望能幫助到大家,謝謝大家對(duì)對(duì)本知道支持!
相關(guān)文章
詳解Linux下的sudo及其配置文件/etc/sudoers的詳細(xì)配置
這篇文章主要介紹了詳解Linux下的sudo及其配置文件/etc/sudoers的詳細(xì)配置的相關(guān)資料,需要的朋友可以參考下2017-05-05linux每天定時(shí)備份數(shù)據(jù)庫(kù)并刪除十天前數(shù)據(jù)詳細(xì)步驟
每天定時(shí)備份數(shù)據(jù)庫(kù)需要用到Linux的定時(shí)任務(wù),利用Linux的crondtab 命令。下面通過本文給大家?guī)砹薼inux每天定時(shí)備份數(shù)據(jù)庫(kù)并刪除十天前數(shù)據(jù)詳細(xì)步驟,感興趣的朋友一起看看吧2018-06-06shell 提取文件名和目錄名的方法實(shí)現(xiàn)
本文主要介紹了shell 提取文件名和目錄名的方法實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2023-02-02Shell實(shí)現(xiàn)識(shí)別物理cpu個(gè)數(shù)、核心數(shù)
這篇文章主要介紹了Shell實(shí)現(xiàn)識(shí)別物理cpu個(gè)數(shù)、核心數(shù),本文還介紹了判斷是否為超線程的功能,需要的朋友可以參考下2014-12-12驗(yàn)證用戶輸入的參數(shù)合法性的shell腳本
今天這個(gè)例子是 用來驗(yàn)證用戶輸入的參數(shù)的合法性的,程序并不復(fù)雜,需要的朋友可以參考下2016-08-08在Shell腳本中調(diào)用另一個(gè)腳本的三種方式講解
今天小編就為大家分享一篇關(guān)于在Shell腳本中調(diào)用另一個(gè)腳本的三種方式講解,小編覺得內(nèi)容挺不錯(cuò)的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來看看吧2019-04-04