`
simohayha
  • 浏览: 1386433 次
  • 性别: Icon_minigender_1
  • 来自: 火星
社区版块
存档分类
最新评论

ftruncate和msync

阅读更多

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.这时就可以正常同步了..
2
0
分享到:
评论

相关推荐

    基于c中使用ftruncate()前需要fflush(),使用后需要rewind()的深入探讨

    今天用ftruncate截断文件, 但怎么都不能达到预料的效果, 截断后文件中的内容比较杂, 而且文件大小也保持原来的.添加 fflush() 和 rewind() 后OK.以下是测试代码: 代码如下:#include <stdio>#include <sys>#include ...

    简要对比C语言中的truncate()函数与ftruncate()函数

    主要介绍了C语言中的truncate()函数与ftruncate()函数的简要对比,注意其之间的区别,需要的朋友可以参考下

    node.js中的fs.ftruncate方法使用说明

    fs.ftruncate(fd, len, [callback(err)]) 由于该方法属于fs模块,使用前需要引入fs模块(var fs= require(“fs”) ) 接收参数: path 文件路径 len 截断长度,只保留该字符长度内的字符,超出部分将被清除。 ...

    yaffs2 文件系统

    yaffs2 文件系统

    UNIX网络编程 卷2:进程间通信

     12.2 mmap、munmap和msync函数 247  12.3 在内存映射文件中给计数器持续加1 250  12.4 4.4BSD匿名内存映射 254  12.5 SVR4 /dev/zero内存映射 255  12.6 访问内存映射的对象 255  12.7 小结 259  习题 260 ...

    UNIX网络编程 卷2 进程间通信 带完整书签,完整目录

    12.2 mmap、munmap和msync函数 247 12.3 在内存映射文件中给计数器持续加1 250 12.4 4.4BSD匿名内存映射 254 12.5 SVR4/dev/zero内存映射 255 12.6 访问内存映射的对象 255 12.7 小结 259 习题 260 第13章 ...

    《UNIX网络编程 第2版. 第2卷, 进程间通信(中文版)》(W·Richard Stevens[美] 著)

    12.2 mmap、munmap和msync函数 247 12.3 在内存映射文件中给计数器持续加1 250 12.4 4.4BSD匿名内存映射 254 12.5 SVR4 /dev/zero内存映射 255 12.6 访问内存映射的对象 255 12.7 小结 259 习题 260 第13章 Posix...

    UNIX网络编程 第2卷 进程间通信

    12.2 mmap、munmap和msync函数 247 12.3 在内存映射文件中给计数器持续加1 250 12.4 4.4BSD匿名内存映射 254 12.5 SVR4 /dev/zero内存映射 255 12.6 访问内存映射的对象 255 12.7 小结 259 习题 260 第13章 Posix...

    linux系统下多线程编程文档资料

    文档内容大致如下: 第一章 线程基础知识 2 一.什么是线程 2 二.线程的优点 2 三.线程的缺点 2 四....五....六....七.....一....四、ftruncate和fstat函数 62 五、共享内存区的写入和读出 64 六、程序例子 65

    linux多线程编程

    linux多线程编程 声明:本文是网上整理的资料,版权属其作者本人所有。 1 第一章 线程基础知识 2 一....二....三....四....四、ftruncate和fstat函数 62 五、共享内存区的写入和读出 64 六、程序例子 65

    高级UNIX编程 pdf 电子书

    2.17 truncate和ftruncate系统调用 练习 第3章 高级文件I/O 3.1 概述 3.2 磁盘特殊文件和文件系统 3.3 硬链接和符号链接 3.4 路径名 3.5 访问和显示文件元数据 3.6 目录 3.7 改变信息节点 3.8 其他的文件处理调用 ...

    Linux 改变文件大小的方法

    int ftruncate(int fd, off_t length); //改变文件大小为length指定大小;返回值 执行成功则返回0,失败返回-1。  函数ftruncate会将参数fd指定的文件大小改为参数length指定的大小。参数fd为已打开的文件描述词,...

    SO实验室1

    Y funcion ftruncate sera para configurar eltamañode la funcion shm_open, Dentro del while infinito creamos varias procesos con la funcion fork()de c, y al al crear el valor nos da

    shm:Golang POSIX共享内存库

    )UNIX风格进行移植:当前是linux,freebsd和darwin。 用法 package main import ( "os" "github.com/fabiokung/shm" ) func main () { file , err := shm . Open ( "my_region" , os . O_RDRW | os . O_CREATE ...

    使用mmap实现大文件的复制(单进程和多进程)

    使用mmap实现大文件的复制,供大家参考,具体内容如下 典型的文件复制的流程是: ... 文件的大小必须要大于等于内存映射区的大小,因此对于创建的新文件,可以使用文件截断函数(ftruncate)来改变文件的大小和被

    UNIX Network Programming Volume 2(Unix网络编程卷2英文版)

    12.2 mmap, munmap, and msync functions 307 12.3 increment counter in a memory-mapped file 311 12.4 4.4bsd anonymous memory mapping 315 12.5 svr4/dev/zero memory mapping 316 12.6 referencing memory...

    OSError: [Errno 22] Invalid argument问题解决

    OSError: [Errno 22] Invalid argument问题解决问题描述解决方法那么问题出在哪了?总结 问题描述 在做SSD目标检测算法的时候,在predict.py文件中遇到了这么一个报错的问题。 // ERROR Traceback (most recent call ...

Global site tag (gtag.js) - Google Analytics