0
変数を共有メモリに更新する必要があるコードを書き込もうとしました。そこでfork()を使って子プロセスを作成しました。私が持っている問題は、パイプを使用する方法がわからないことです。そのため、ある値に達したときに、あるプロセスがそれを判断すると、パイプを使用して出力が終了したことを他のプロセスに伝える必要があります。私はパイプが使用されている多くの例を見ていましたが、それでも実装する方法がわかりません。もし誰かがこれを行うためのガイドラインを私に助けてくれたら、本当に感謝します。あなたの親プロセスの出力に子プロセスの入力を接続する必要がありCでパイプを使用するには?
`#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
#include <semaphore.h>
#include <sys/mman.h>
#include <sys/types.h>
#include <sys/wait.h>
int main(void)
{
int * shared=mmap(NULL, sizeof(int), PROT_READ|PROT_WRITE,MAP_SHARED|MAP_ANONYMOUS, -1, 0);
printf("Value of the variable at the beginning: %d\n", * shared);
pid_t pid;
pid=fork();
if(pid==0)
{
int a=0;
a=* shared;
a+=3;
printf("Child process: %d\n", a);
sleep(rand()%10);
}
else{
int b=0;
b= * shared;
b+=2;
printf("Parent process: %d\n", b);
sleep(rand()%10);
}
}
ありがとうございます:) – Felicity