необходимы два дочерних процесса, чтобы сделать это:Синхронизация поочередно два процесса в Linux C
- процесс по уходу за детьми 1 должен
printf
четные числа от 0 до 100. - процесса ребенка 2 должен
printf
нечетные числа между 0 и 100.
Что я должен видеть в терминале после выполнения является: 0 1 2 4..100
Как может Я делаю это?
Я попробовал эту программу, но она не работает, он только дает мне первое целое число 0:
#include <unistd.h>
#include <stdio.h>
#include <signal.h>
void handler1(int sig)
{
if(sig == SIGCONT)
{
raise(SIGCONT);
}
}
void handler2(int sig)
{
if(sig == SIGCONT)
{
raise(SIGCONT);
}
}
int main()
{
int i=-1;
if(fork()==0)
{
signal(SIGCONT,handler1);
while(1)
{
printf("%d\n",i+1);
pause();
kill(getpid()+1,SIGCONT);
}
}
if(fork()==0)
{
signal(SIGCONT,handler2);
while(1)
{
pause();
printf("%d\n",i+1);
kill(getpid()-1,SIGCONT);
}
}
}
'0 1 2 4..100'? –
zillions of problems .. напечатайте некоторые отладочные сообщения и (надеюсь) ... вы увидите, что происходит –