fork程序建立

2021-07-03 19:45:35 字數 1023 閱讀 8651

fork建立子程序,fork函式返回兩個值,當為0時,則認為是子程序**塊執行區域,而不為0則是父程序**塊執行區域。我們需要知道的是,fork子程序可以與父程序共享部分程序上下文,而與此不同的是execl函式,一旦開始執行到execl函式時,啟動被呼叫的函式,後面的**則不再執行,而是直接執行呼叫的程式,上下文也被替換。

#include#include#include#include#include#include#includeint errno;

extern char **environ;

int main()

printf("臨時檔案成功建立\n");

pid_t nchild=;

int fd=open(sfd,o_creat|o_rdwr|o_trunc,0644);

if(0==(nchild=fork()))

lseek(fd,0,seek_set);

//開始讀取檔案

char buf[1024]=;

if(read(fd,buf,1024)>=0)

close(fd);

} else

lseek(fd,0,seek_set);

char buf[1024]=;

if(read(fd,buf,1024)>=0)

close(fd);

} wait(&status);

close(fd);

}

繼續說說臨時檔案的過程,mktemp函式,需要返回乙個系統指定的檔名稱,然後我們使用該檔名稱,進行正常的檔案讀寫。

wait()函式使父程序暫停執行,直到它的乙個子程序,注意這裡說的是乙個 子程序   只要乙個就可以結束為止,該函式的返回值是終止執行的子程序的pid. 引數status所指向的變數存放子程序的退出碼,即從子程序的main函式返回的值或子程序中exit()函式的引數。如果status不是乙個空指標,狀態資訊將被寫入它指向的變數

waitpid 等待指定程序結束的函式,當然也可以用於等待子程序

fork建立程序

1.程序的建立 fork 函式是建立子程序的函式,在主函式中呼叫fork會產生乙個子程序 列印出來的結果是 if語句是條件語句但卻兩個都列印了,兩個條件都滿足,也就是說兩個都執行,但卻不是一條執行流,那麼可以得出肯定還有乙個程序在列印另乙個。都記得fork 之後有兩個程序,乙個父程序,乙個子程序,父...

建立程序 fork函式

最近,我在linux中學到了乙個神奇的函式,名為fork 函式,它的作用是建立程序。它的神奇之處在於呼叫fork 函式時,系統會建立乙個與原來程序幾乎完全相同的程序,大致的意思就是兩個程序可以做完全相同的事,但如果初始引數或者傳入的變數不同,兩個程序也可以做不同的事 就相當於是轉殖了乙個自己。先來看...

Linux 程序建立 fork

1 fork 函式原型 pid t fork void 函式返回值型別為 pid t,實質是 int 型別,linux 核心2.4.0版本的定義是 typedef int kernel pid t typedef kernel pid t pid t 2 fork 函式的底層實現 fork vfor...