当前位置: 技术问答>linux和unix
谁能帮忙看一下我的程序有问题么?
来源: 互联网 发布时间:2016-06-16
本文导语: 功能就是隔一段时间就将子进程杀死,然后再产生一个子进程,循环反复。 static int exit_flag = 0; static void signal_handler(int sig_num) { exit_flag = sig_num; } int main() while(1){ if ((pid = fork()) == -1) { printf("fork error...
功能就是隔一段时间就将子进程杀死,然后再产生一个子进程,循环反复。
static int exit_flag = 0;
static void
signal_handler(int sig_num)
{
exit_flag = sig_num;
}
int main()
while(1){
if ((pid = fork()) == -1) {
printf("fork error!");
}else
if (pid == 0){/*child*/
printf("I am the child process, my process ID is %dn",getpid());
(void) signal(SIGTERM, signal_handler);
/*do something*/
while(exit_flag == 0){
pause();
}
exit(0);
}
else if(pid >0){
int t;
int status;
t = rand()%10;
sleep(t);
kill(pid, SIGTERM);
wait(&status);
printf("killed!! n");
printf("I am the parent process, my process ID is %dn",getpid());
sleep(5);
}
}
)
static int exit_flag = 0;
static void
signal_handler(int sig_num)
{
exit_flag = sig_num;
}
int main()
while(1){
if ((pid = fork()) == -1) {
printf("fork error!");
}else
if (pid == 0){/*child*/
printf("I am the child process, my process ID is %dn",getpid());
(void) signal(SIGTERM, signal_handler);
/*do something*/
while(exit_flag == 0){
pause();
}
exit(0);
}
else if(pid >0){
int t;
int status;
t = rand()%10;
sleep(t);
kill(pid, SIGTERM);
wait(&status);
printf("killed!! n");
printf("I am the parent process, my process ID is %dn",getpid());
sleep(5);
}
}
)
|
代码有什么问题阿?
好像你是给大家看的
好像你是给大家看的
|
有排版问题:
static int exit_flag = 0;
static void
signal_handler(int sig_num)
{
exit_flag = sig_num;
}
int main()
{
while(1) {
if ((pid = fork()) == -1) {
printf("fork error!");
} else
if (pid == 0) { /*child*/
printf("I am the child process, my process ID is %dn",getpid());
(void) signal(SIGTERM, signal_handler);
/*do something*/
while(exit_flag == 0) {
pause();
}
exit(0);
} else if(pid >0 ) { /* Parent process */
int t;
int status;
t = rand()%10;
sleep(t);
kill(pid, SIGTERM);
wait(&status);
printf("killed!! n");
printf("I am the parent process, my process ID is %dn",getpid());
sleep(5);
}
}
}