?? experiment_1.c
字號:
/*exc.c實驗一源碼*/
#include <stdio.h>
#include <stdlib.h>
#include <sys/types.h>
#include <unistd.h>
#include <sys/wait.h>
int main(void)
{
pid_t child1,child2,child;
/*創建兩個子進程*/
child1 = fork();
child2 = fork();
/*子進程1的出錯處理*/
if( child1 == -1 ){
perror("child1 fork");
exit(1);
}
/*在子進程1中調用execlp函數*/
else if( child1 == 0 ){
printf("In child1: execute 'ls -l'\n");
if(execlp("ls","ls","-l",NULL)<0)
perror("child1 execlp");
}
/*子進程2的出錯處理*/
if( child2 == -1 ){
perror("child2 fork");
exit(1);
}
/*在子進程2中使其暫停5秒*/
else if( child2 == 0 ){
printf("In child2: sleep for 5 seconds and then exit\n");
sleep(5);
exit(0);
}
/*在父進程中等待子進程2的退出*/
else{
printf("In father process:\n");
do{
child = waitpid( child2, NULL, WNOHANG );
if( child ==0 ){
printf("The child2 process has not exited!\n");
sleep(1);
}
}while( child == 0 );
if( child == child2 )
printf("Get child2\n");
else
printf("Error occured!\n");
}
}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -