Q1。 (见下面的代码)如果我评论while循环。我可以通过IPC进行沟通。但为什么使用while循环,我没有输出?
Q2。是否有更好的方法在进程之间进行通信而不是使用管道(如果是,则通过信号或信号量,然后提供一些示例。
#include <iostream>
#include <unistd.h>
#include <sys/wait.h>
#include <stdlib.h>
using namespace std;
int main(){
int person_from_whom_token_starts =1;
bool started = false ;
int tok_value = 3;
int iveToken = 4;
int tok_value_const = 5;
int x;
bool y;
int fd[2];
int status = 0;
pipe(fd);
switch(fork()){
case -1:
cout << "ERRR" << endl;
break;
case 0:
close(fd[0]);
dup2(fd[1],1);
while(1){
cout << person_from_whom_token_starts << started << tok_value << iveToken << tok_value_const;
sleep(3);
}
exit(0);
break;
default:
sleep(1);
dup2(fd[0],0);
close(fd[1]);
cin >> x >> y;
cout << "x: " << x << "\ny: " << y << endl;
//wait(&status);
break;
}
return 0;
}