簡體   English   中英

在接收管道數據的應用程序中使用mmap()?

[英]Use mmap() in application receiving piped data?

是否可以在Linux上的C ++應用程序中使用mmap(),該應用程序必須從文件接收管道輸入,如果這樣,這比從流中讀取單個/ page_amount字節快嗎?

我不確定mmap()是否可行,因為管道涉及流,而mmap()是否會立即要求所有數據可用?

您不能mmap流,因為流緩沖區中的數據只能讀取一次。 此外,在運行時無法確定可接收數據的長度。 最好的選擇是mmap足夠的內存量,然后將其用作接收緩沖區。

如果您正在使用stdio函數讀取流中的數據,則塊大小將無關緊要。 圖書館將自動選擇最合適的一頁(一次通常一頁)。 但是,如果您打算使用read則分頁閱讀將為您提供最佳性能。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM