我在linux下用C++編寫一個程序,其中一個子進程應該在管道中寫入兩個長值並且父進程應該讀取它們。直到現在,我onlz設法爲此設置兩個(命名)管道,並通過寫入(fd1,& value1,sizeof(long))寫入每個管道並通過讀取(fd1,& value1,sizeof(long))讀取它。 只有一個管道兩個會更好,但我無法弄清楚如何做到這一點。如何將更多值寫入管道並讀取它們?
我想:
write(fd1,&value1,sizeof(long));
write(fd1,&value2,sizeof(long));
和兩次讀取以及但這似乎導致阻塞,並等待對方的過程。
如果有人能給我一個提示,我會很高興,如何實現這一點。
可能的解決方案:我寫了一個數組中的所有值(因爲我知道有多少),然後我只需要一個線/讀電話。
管道可能被緩衝你有沖洗嗎? –