
C++知识点:ftruncate和msync 首先,man手册里面ftruncate说是当length大于文件本身的大小
的话,会扩大文件的话并补'\0'的,可是我在arm-linu-gcc 3.4下却不是。还有就是msync的话起始
地址(也就是addr)必须是页大小的倍数,这样的话我们每次都要这么做:www.Examda.CoM考试就到
假设起始地址是mmap,页大小是pagesize,所需要同步的长度为length.这时我们需要同步的起始地址就是:
(mmap/pagesize) * pagesize.而长度我们也需要扩展,这时长度就是length + mmap %pagesize.这时就可以正常同步了。函数说明:truncate()会将参数
path 指定的文件大小改为参数length 指定的大小. 如果原来的文件大小比参数length 大, 则超过的部分会被删去.
返回值:执行成功则返回0, 失败返回-1, 错误原因存于errno.
错误代码:
1、EACCESS 参数path 所指定的文件无法存取。


评论列表(0条)