程序相關函式歸納

2021-08-29 16:21:40 字數 1990 閱讀 8367

#include #include #include //exit 的標頭檔案

#include //_exit 的標頭檔案

pid_t fork(void);
作用:它從已存在程序中建立乙個新程序。新程序為子程序,而原程序為父程序。

返回值:這個函式有2個返回值;在不同的程序裡面返回值是不同的。

在成功的情況下:

在父程序裡面:返回值為子程序的程序號;

在子程序裡面:返回值為0;

失敗:返回值為-1;

pid_t getpid(void);   //獲取當前程序的id號;

pid_t getppid(void); //獲取當前程序的父id號;

作用:獲取當前程序的程序id號。

返回值:對應的id號

pid_t wait(int *status);  //隨機的等待乙個子程序退出

pid_t waitpid(pid_t pid, int *status, int options);//等待指定的pid子程序退出;

功能:執行上面的函式都是暫停程序,等待子程序退出執行清理工作;

形式引數:

pid:子程序id號;

status:傳出引數,它會將子程序的結束狀態值儲存到status指向的變數裡;

options:用於改變 waitpid 的行為。其中最常用的是 wnohang,它表示無論子程序是否退出都將立即返回,不會將呼叫者的執行掛起。

返回值:對應的子程序的id號;

int execl(const char *path, const char *arg, ...);

int execlp(const char *file, const char *arg, ...);

int execv(const char *path, char *const argv);

int execvp(const char *file, char *const argv);

作用:執行第乙個exec函式族指定的可執行程式。

形式引數:

path:包括執行檔名的全路徑名,比如"/bin/ls"。

file:既可是全路徑名也可是可執行檔名,比如"ls"。

arg:是可執行檔案的全部命令列引數,可以用多個,包含命令名本身。注意最後乙個引數必須為 null。

argv:是乙個字串陣列。是可執行檔案的全部命令列引數陣列。比如,char *argv=;

返回值:沒有作用,因為程式跑去執行組函式了,沒有辦法處理返回值。

例子:

execl("/bin/ls", "ls", "-l", null);

execlp("ls", "ls", "-l", null);

char *str = ; execv("/bin/ls", str);

char *str = ; execvp("ls", str);

void exit(int status);

void _exit(int status);

作用:都是用來終止程序的。

形式引數:

status:利用這個引數傳遞程序結束時的狀態。一般來說, 0 表示正常結束;其他的數值表示出現了錯誤,程序非正常結束。

exit 函式和_exit 函式的區別:

exit函式:在退出之前會檢查檔案的開啟情況,把檔案緩衝區中的內容寫回檔案,就是圖中的「清理 i/o 緩衝」。

_exit 函式:直接將程序關閉,緩衝區中的資料就會丟失。

因此,如想保證資料的完整性,建議使用exit 函式。

例子:

#include #include #include #include #include int main()

}else fi(pid==0)//子程序

}return 0;

}

PHP函式庫程序 常用函式歸納

雖然市場上有php手冊 但是一方面太貴,另一方面太全,因此利用php5電子手冊找了些時間為自己量身定做了一本 php秘笈 就是把常用的和比較好的一些函式庫等歸納了一下,並把php正規表示式的全部詳解 mysql的詳細指令和詳細用法 php.ini的配置詳解也收錄其中。這裡歸納一些基礎函式庫和常用擴充...

MVC相關問題歸納

問題 1 how mvc pattern flows 2 物件模型 關係模型 3 or framework 4 ef entity framework 實體框架 5 模型驅動資料資料驅動模型的兩種方式的理解 6 模型驅動資料中自動更改上下文 資料庫 表資訊時在 全域性global 中更改 來實現 7...

linux 程序管理相關函式

對於linux 函式可以通過命令列指令 man 函式名,檢視函式相關資訊 返回當前程序的pid getpid 建立乙個程序,當執行完這行 後,將會有兩個進製執行下面的 不同的是,父程序pid大於0,子程序pid 0 同時執行 fork 和fork 類似 但是這裡子程序先執行,結束後,執行父程序 vf...