我正在開發一個軟件項目,需要將一個過程的幾個值傳輸給另一個。我現在嘗試了更好的一半,但仍然沒有工作。有人能給我寫一個簡單的例子來說明如何做到這一點?如何通過命名管道(fifo)傳輸結構的內容?
回答
編劇:
struct X foo = /* ... */;
fwrite(&foo, sizeof foo, 1, outfile);
讀者:
struct X foo;
fread(&foo, sizeof foo, 1, infile);
的FILE
指針infile
和outfile
通過打開相關的管道,大概是在POSIX文件描述使用fdopen
獲得。
確保讀寫調用都返回1
,否則出現錯誤。
爲了正確處理部分寫入,最好將'size'參數設置爲'1',將count參數設置爲'sizeof foo'。 '1'的'count'參數使得這是不可能的。也許'fwrite(&foo,1,sizeof(foo),outfile);' –
@AndrewHenle它取決於是否緩衝了'FILE *'。對Kerrek來說,這就是爲什麼我不會推薦使用stdio函數來讀取/寫入非文本數據的管道。使用'write'會使其成爲原子的(如果寫入的數據少於管道內部緩衝區)。 –
@Someprogrammerdude:'write(2)'究竟是多少原子?這與其寫入的字節數相比是原子的,但可能只有一個字節。 –
- 1. 寫入FIFO(命名管道)
- 2. 創建取決於輸入文件內容幾個命名管道(FIFO)
- 3. 傳遞一個結構通過FIFO
- 4. C中的FIFO(命名管道)
- 5. 如何通過fifo發送結構
- 6. 通過命名管道
- 7. 在命名管道(fifo)上調用LaTeX?
- 8. FIFO(命名管道)消息障礙
- 9. 通過管道傳輸
- 10. 通過命名管道發送結構化數據(Linux)
- 11. 如何gzip通過管道readStream傳遞的內容
- 12. 如何避免回聲關閉FIFO命名管道? - Unix FIFO的有趣行爲
- 13. Linux fifo(命名管道)O_NONBLOCK中斷管道
- 14. 在FIFO上打開(命名管道)凍結 - 忽略SIGINT,SIGTERM
- 15. 命名管道書面內容生活
- 16. 通過網絡命名管道的C#
- 17. 管道ffmpeg輸出到命名管道
- 18. 通過管道寫結構數組
- 19. 通過命名管道發送圖像
- 20. 通過命名管道使用服務
- 21. 如何處理使用命名管道的過程輸出
- 22. PIPE_BUF是否適用於命名管道又名FIFO?
- 23. 如何在python中通過兩個管道連接管道變量的內容?
- 24. 如何通過VB.net中的命名管道發送課程
- 25. 傳遞在C整體結構通過管道
- 26. 我通過命名管道傳遞了std :: pair它是如何工作的?
- 27. 如何在Linux中將「查找」的結果通過管道傳輸到mvv中
- 28. 通過雙向管道傳遞文件內容
- 29. 檢查文件是否是python中的命名管道(fifo)?
- 30. FIFO上的多個讀寫器(命名管道)
只需在結尾處「寫」結構,然後在另一端「讀」結構呢?你有什麼嘗試?你的嘗試有什麼問題?請[請閱讀如何提問問題](http://stackoverflow.com/help/how-to-ask)並學習如何創建[最小,完整和可驗證示例](http://stackoverflow.com /幫助/ MCVE)。 –