linux
system()接收一個字符串參數,並把它當成命令執行數組
例如:編輯器
system("dir D:")打印D盤內容函數
system("gedit")在linux中啓動編輯器性能
system("say 'End of line'") 在mac上閱讀文本spa
二.使用elec()系統調用函數進程
elec函數位於unistd.h的頭文件中,該函數調用進程成功時,系統會中止運行當前程序,去運行調用的程序。字符串
elecl() = 參數列表get
elecle()=參數列表+環境變量it
eleclp()=參數列表+搜索PATH
elecv()=參數數組
elecve()=參數數組+環境變量
elecvp()=參數數組+搜索PATH
在使用elec()函數時應該使用NULL結束參數列表
可使用getenv()函數讀取環境變量
三.errno變量
errno變量是定義在errno.h中的全局變量
exec函數調用出錯會返回-1,系統調用函數出錯的同時將errno變量設爲錯誤碼
errno的標準錯誤碼:
EPERM=1 不容許操做
ENOENT=2 沒有該文件或目錄
ESRCH=3 沒有該進程
puts(strerrot(errno));
四.使用fork()克隆進程
使用fork()函數複製當前進程
fork函數被聲明在unistd.h頭文件中
在成功運行exec()後會替換掉當前進程,使用fork函數複製當前進程並運行exec建立子進程,便於父進程中實現原程序的循環
使用方法:
pid_t pid=fork()
fork會返回一個整數爲子進程返回0,爲父進程返回一個正數,父進程將接收子進程的進程標識符
pid_t函數用於存放進程標識符
使用fork()+exec()組合,建立並運行獨立進程,不但能更好的利用現有軟件,並且還能提升程序的性能。