程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> 關於C語言 >> ftruncate和msync

ftruncate和msync

編輯:關於C語言

C代碼

int ftruncate(int fd, off_t length) 
int msync(void *addr, size_t len, int flags)

首先,man手冊裡面ftruncate說是當length大於文件本身的大小的話,會擴大文件的話並補'\0'的,可是我在arm-linu-gcc 3.4下卻不是。

還有就是msync的話起始地址(也就是addr)必須是頁大小的倍數,這樣的話我們每次都要這麼做:

假設起始地址是mmap,頁大小是pagesize,所需要同步的長度為length.這時我們需要同步的起始地址就是:

(mmap/pagesize) * pagesize.而長度我們也需要擴展,這時長度就是length  + mmap %pagesize.這時就可以正常同步了..

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved