linux 下文件操作和内存映射的一个简单例子

这个例子来自《linux程序设计》,对程序进行了一些注释。具体如下:

#include
#include
#include // 包含了关于内存映射的一些函数
#include
#include

typedef struct {
    int integer;
    char string[24];
} RECORD;

// 定义结构体变量的数目
#define NRECORDS (100)

int main()
{
    RECORD record, *mapped; // record 作用相当于一个缓冲区,把要读或者要写的数据放入其中
    int i, f; // i是循环变量,f用于存储open()返回的 文件描述符
    FILE *fp;

	// 一般的文件操作,生成一个文件,文件内容是循环体中给出的
    fp = fopen("record.dat", "w+");
    for(i=0; i


其中:

fcntl.h 和 unistd.h的讲解可以参看:http://blog.csdn.net/lyc_daniel/article/details/11740393

mmap() 函数的讲解可以参看:http://blog.csdn.net/dlutbrucezhang/article/details/9080173

msync()中的参数可看:http://www.man7.org/linux/man-pages/man2/msync.2.html



你可能感兴趣的:(linux)