我需要兩個子進程來做到這一點:同步交替兩個過程在Linux下C
- 子進程1應該
printf
甚至在0到100 - 子進程之間的數字2應在0之間
printf
奇數和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'? –
無數的問題..打印一些調試信息和(希望...)你會看到發生了什麼 –