linux 練習三 fork函式和exev函式族

2021-08-11 11:58:21 字數 915 閱讀 6101

編寫兩個不同的可執行程式,名稱分別為a和b,b為a的子程序。

在a程式中呼叫open函式開啟a.txt檔案。

在b程式不可以呼叫open或者fopen,只允許呼叫read函式來實現讀取a.txt檔案。

(a程式中可以使用 fork與execve函式建立子程序)。

a.c//fork函式 父子程序 共享(複製)檔案描述符

#include #include #include #include #include #include int main(int argc,char * argv)

printf("the process pid=%d\n",getpid());

fd = open(argv[1],o_rdonly,0);

if(fd < 0)

pid = fork();

if(pid < 0)

else if(0 == pid)

}else

printf("close file over\n");

printf("wait for child process over\n");

pid = waitpid(pid,null,0);

printf("child process pid =%d over\n",pid);

}}b.c

#include #include #include #include int main(int argc, char* argv)

printf("now is in b process\n");

for(i = 0;ifd = atoi(argv[1]);

if(fd < 3)

dowhile(readnum == sizeof(buf));

printf("\n");

}

fork 函式和linux程序號

pid t 型別 定義程序號型別 實際型別 我們可找到其定義 1 在centos6.5的 usr include sys type.h中可找到其定義 總結 pid t 就是 int 型 2 fork 函式建立子程序 需要的標頭檔案 include和 include 功能 從乙個已經存在的程序中建立新...

LINUX下fork 和kill函式

1 fork 函式 pid t fork void 返回值 fork僅僅被呼叫一次,卻能夠返回兩次,它可能有三種不同的返回值 1 在父程序中,fork返回新建立子程序的程序id 2 在子程序中,fork返回0 3 如果出現錯誤,fork返回乙個負值 在fork函式執行完畢後,如果建立新程序成功,則出...

Linux下的fork 函式

fork fork的英文翻譯是 分叉 同樣在linux中我們也可以理解為如果使用了fork 函式,程序也會 分叉 下面進行具體的說明fork 函式。定義 通過系統呼叫建立乙個與原程序幾乎完全相同的程序,其中新產生的程序成為子程序。原型 pid t fork void fid t相當於int型別特殊之...