请教文件存储的问题???!

请教文件存储的问题???!

大家好:
    我现在在编一个名片程序(Linux下),我定义了一个结构体,现在的问题是如何存储文件(所有的结构体保存在一个文件中),以便将来进行查询,添加等操作!      
假设你的结构是MINPIAN,要寸的文件是filename.先创建MINPIAN结构大小的文件。
fd = open(filename,O_WRONLY | O_CREAT | O_TRUNC,
            S_IRUSR | S_IWUSR | S_IRGRP | S_IROTH);
if (fd == -1)
      printf("can not create file\n")
ret = ftruncate(fd,sizeof(struct MINPIAN));
if (ret == -1)
      printf("truncate error\n");
close (fd);
使用时,打开文件,用mmap映射到进程空间,可以保持数据一致。
      
你好!
    ftruncate(fd,sizeof(struct MINPIAN))是什么意思?
你说的建文件是指:
  struct Card mingpian[600] ;
   for ( i=0;i<600;i++)进行的文件内的结构体的初始化吗?
我想多一点知道存储的问题!
我用的 fwrite他只能顺序的追加,不能内部排序和删除等,查询也太慢!
      
我现在急需了解,请大家帮忙!!      
用ftruncate指定文件的大小。
文件用open即可创建。
你可以将整个文件创建为一个大结构,里面用其他结构数组表示具体的东西。在为这个数据结构创建一套维护即可。
由于使用mmap你可以不用往文件里写,直接写到文件映像到进程的空间即等于写入文件。      
你好!
    我实在不怎么聪明,你说的我还不太懂!有例子吗?
有的话,能否邮给我?
sanmzhou@163.com