Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
是否可以在 Linux 上的 C++ 应用程序中使用 mmap() ,该应用程序必须从文件接收管道输入,如果是这样,这是否比从流中读取单个/page_amount 字节更快?
我不确定 mmap() 是否可行,因为管道涉及流,而 mmap() 不会立即需要所有可用数据吗?
您不能mmap使用流,因为流缓冲区中的数据只能读取一次。此外,可接收数据的长度在运行时也是无法确定的。您最好的选择是mmap拥有足够的内存,然后将其用作接收缓冲区。
mmap
如果您使用stdio函数从流中读取数据,则块大小无关紧要。图书馆将自动选择最佳的一个(通常一次一页)。但是,如果您打算使用,read那么阅读大块页面将为您提供最佳性能。
stdio
read