LInux 程序控制作業——1
阿新 • • 發佈:2018-12-15
題目如下:
u建立子程序
u在子程序中開啟檔案file1,寫入自己的“班級_姓名_學號”,
u父程序讀取file1中的內容,並且列印顯示。
u在父程序中獲取已經結束的子程序的狀態資訊,列印該資訊,並且列印結束的子程序的程序號。
程式碼如下:
#include<stdio.h> #include<unistd.h> #include<stdlib.h> #include<sys/stat.h> #include<sys/types.h> #include<fcntl.h> #include<sys/wait.h> int main() { int pid = fork(); int fd = open("1.txt",O_RDWR|O_CREAT,S_IRWXU|S_IRWXG|S_IRWXO); if(pid == 0) { char str1[15] = "CLASS_NAME_ID"; int bits1 = write(fd,str1,15); if(bits1 == -1) printf("write error"); } else if(pid > 0) { sleep(1); char str2[15]; int bits2 = read(fd,str2,15); if(bits2 == -1) printf("read error"); else for(int i=0;i<15;i++) printf("%c",str2[i]); printf("\n"); pid_t pid1; int status,i; pid1 = wait(&status); if(WIFEXITED(status)) i = WEXITSTATUS(status); printf("Child's pid=%d .exit status=%d\n",pid1,i); printf("pid:%d\n",pid); } else { printf("fork error\n"); } return 0; }
學習目標有以下:
1,利用fork()函式建立子程序;
2,清楚處於子父程序的區別,並處理不同的程式碼段;
3,wait()函式與其相關巨集的操作,得到子程序的相關資訊;