找回密码
 注册
查看: 1316|回复: 6

弱弱的问一下C处理文件任意插入数据

[复制链接]
发表于 2005-12-13 20:45:50 | 显示全部楼层 |阅读模式
以前做网页用PHP+MYSQL,基本都不使用文件的读写,现在学用C,数据保存上还不是很适应啊,到处搜索了下,可能是关键字不对还是什么原因,找到的都是教程上的文件操作,有资料和知道的帮帮忙啊~~
发表于 2005-12-13 21:07:46 | 显示全部楼层
C语言就是用文件操作啊。你自己定义好数据结构读取、写入就行了。
回复

使用道具 举报

 楼主| 发表于 2005-12-13 22:58:15 | 显示全部楼层
是指,直接把链表按内存信息存入文件?我看了bnbt的代码,好象他是按BT制定的B编码全部读取出来,任何修改都在内存中操作,然后回写文件~是这种方法么?

但如果要求储存的数据比较多,感觉就不太可能读取了,现在学校的BT服务器启动的时候解析的时间就开始变长了~

类似文本编辑器那样的
比如在文件开始插入一个字符或者数据麻,后面的数据就跟着往后移一个字符。只有一块数据一块数据移吗?如果文件比较大的话,比如400M

对这些不太清楚啊,还请大家指教
回复

使用道具 举报

 楼主| 发表于 2005-12-14 13:07:02 | 显示全部楼层
问题太多的话能发个资料什么的,源代码也行,谢谢先了
回复

使用道具 举报

发表于 2005-12-14 14:10:48 | 显示全部楼层
没看明白你的意图
回复

使用道具 举报

发表于 2005-12-15 15:01:34 | 显示全部楼层
其实文件中的内容的插入删除好像和语言无太大关系,由于文件是连续存储,所以和一维数组中数据的插入删除原理上差不多, 也就是说原理上无法像链表那样在不移动后面数据的情况下直接插入(不会说你还不太清楚链表的插入和数组的插入有什么不同吧)。所以说,在文件中插入数据,原则上还是只能:
查找到插入点;
插入数据;
把后面的顺从往后移动。
当然,你也可以做一些函数封装,这样好像调用一个函数就完成了文件的插入:)
回复

使用道具 举报

 楼主| 发表于 2005-12-15 17:32:49 | 显示全部楼层
恩,看了下一个代码,也是这样,把插入点后面的先读出,然后放在后面,谢谢,如果方便看下这个问题,是不是GCC的问题?
      4609:     symbol=printf;  lookup in file=./a.out [0]
      4609:     symbol=printf;  lookup in file=/lib/tls/libc.so.6 [0]
lookup 0x08048000 0x00000194 -> 0xb7e9e000 0x00041668 /1 printf
12544
代码就是比较简单的标准C函数啊

#include "stdio.h"


typedef struct mem_struct{
    void *z;
    unsigned char flag;
    unsigned char state;

} mem;
int main()
{
char *zz = "11";
mem *bb;
bb->z = zz;
int b= zz[0]+zz[1]*255;
printf("%d",b);

}

是magiclinux 2.0rc1
不确定是否以前有装过影响GCC的东西了
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

GMT+8, 2025-2-7 12:11 , Processed in 0.053022 second(s), 16 queries .

© 2001-2025 Discuz! Team. Powered by Discuz! X3.5.

快速回复 返回顶部 返回列表