Jan*_*dec 32
有两个部分:
pread/ pwrite和read/ 之间的区别write:
它们都处于同一级别,即系统调用.有两点不同:
read/ pread/ write/ pwrite和fread/ 之间的区别fwrite:
"f"变体是前者的标准运行时包装器(使用基本变体).它们支持进程内缓冲.这可以显着提高简单代码的性能,但它使用系统调用级别的其他功能是不切实际的.
如果您可以很好地使用随机偏移量读取(避免搜索并允许通过一个文件句柄进行并发访问),则只使用"p"变体,这通常是某种数据库文件的情况(以已知偏移的记录为记录)很少在其他应用程序中.
Gre*_*ape 16
当你随机阅读/写作时它很有用.甚至有一个sqlite的替换选项seek()+ read()和seek()+ write()用pread()/pwrite().为什么它有用?seek()+ read()和seek()+ write()都是一对sys调用,pread()而且pwrite()是单个sys调用.减少系统调用 - 提高效率.