高级文件 I/O 与性能优化全解析
1. madvise() 函数的返回值和错误码
- 返回值 :
madvise()函数在成功时返回 0,失败时返回 -1,并会适当地设置errno。 - 错误码 :
- EAGAIN :内核内部资源(可能是内存)不可用,进程可以重试。
- EBADF :区域存在,但未映射到文件。
- EINVAL :参数
len为负数,addr未按页对齐,建议参数无效,或者页面已被锁定或使用MADV_DONTNEED共享。 - EIO :使用
MADV_WILLNEED时发生内部 I/O 错误。 - ENOMEM :给定区域不是该进程地址空间中的有效映射,或者使用了
MADV_WILLNEED,但没有足够的内存将给定区域换入。
2. 普通文件 I/O 的建议
Linux 提供了 posix_fadvise() 和 readahead(
订阅专栏 解锁全文
644



被折叠的 条评论
为什么被折叠?



