23,125
社区成员
发帖
与我相关
我的任务
分享
#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
int main(void)
{
pid_t pid;
pid = fork();
if(pid < 0){
printf("fail to fork\n");
exit(1);
}else if(pid == 0){
if(execl("./a.sh","arg0",NULL) < 0){
perror("fail to exec");
exit(0);
}
}
printf("the parent\n");
return 0;
}
$ cat a.sh
#! /bin/sh
echo $0
date
echo
$ cat b.sh
echo $0
date
echo
$ cat 077.c
#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
int main(void)
{
pid_t pid;
pid = fork();
if(pid < 0){
printf("fail to fork\n");
exit(1);
}else if(pid == 0){
if(execl("./a.sh","arg0",NULL) < 0){
perror("fail to exec");
}
}
sleep(1);
pid = fork();
if(pid < 0){
printf("fail to fork\n");
exit(1);
}else if(pid == 0){
if(execl("./b.sh","arg0",NULL) < 0){
perror("fail to exec");
exit(1);
}
}
sleep(1);
pid = fork();
if(pid < 0){
printf("fail to fork\n");
exit(1);
}else if(pid == 0){
if(execlp("./a.sh","arg0",NULL) < 0){
perror("fail to exec");
exit(1);
}
}
sleep(1);
pid = fork();
if(pid < 0){
printf("fail to fork\n");
exit(1);
}else if(pid == 0){
if(execlp("./b.sh","arg0",NULL) < 0){
perror("fail to exec");
exit(1);
}
}
sleep(1);
printf("the parent\n");
return 0;
}
/* 输出 */
/*
$ ./077
./a.sh
Wed Nov 4 21:25:38 CST 2009
fail to exec: Exec format error
./a.sh
Wed Nov 4 21:25:40 CST 2009
./b.sh
Wed Nov 4 21:25:41 CST 2009
the parent
*/