
目前c语言使用的文件系统分为缓冲文件系统(标准i
/
o)和非缓冲文件系统(系统i
/
o)。缓冲文件系统的特点是:在内存开辟一个“缓冲区”,为程序中的每一个文件使用,当执
行读文件的 *** 作时,从磁盘文件将数据先读入内存“缓冲区”,装满后再从内存“缓冲区”依此读入接收的变量。执行写文件的 *** 作时,先将数据写入内存“缓冲区”,待内存“缓冲区”装满后再写入文件。
因此当程序运行时虽然进行了写数据 *** 作,但是如果写入的数据没有装满内存中的缓冲区,就不会将数据写入到磁盘文件中。当程序运行结束后,系统就会将缓冲区中的数据写入到磁盘上的文件中,因此就可以看到文件中的内容。
将数据以链表形式顺序存放,新数据总是放在表尾,待处理的数据总是在头结点下的第一个结点,处理完毕则释放空间。缓冲器为暂时置放输出或输入资料的内存。缓冲器内资料自储存设备(如硬盘)来,放置在缓冲器中,须待机送至CPU或其他运算设备。缓冲区(buffer)这个中文译意源自当计算机的高速部件与低速部件通讯时,必须将高速部件的输出暂存到某处,以保证高速部件与低速部件相吻合. 后来这个意思被扩展了,成为"临时存贮区"的意思。
将数据以链表形式顺序存放,新数据总是放在表尾,待处理的数据总是在头结点下的第一个结点,处理完毕则释放空间。\x0d\x0a \x0d\x0a#define BufferSize 1024 // 合适的大小你知道的\x0d\x0atypedef struct node {\x0d\x0achar *buffer\x0d\x0astruct node *next\x0d\x0a}*linkList\x0d\x0a \x0d\x0aLinkList *InitList() {\x0d\x0aLinkList *head\x0d\x0ahead = (char *)malloc(size(node))\x0d\x0ahead->next = NULL:\x0d\x0areturn head\x0d\x0a}\x0d\x0a \x0d\x0avoid AddData(LinkList *head, char *data) { // 将新数据添加到表尾\x0d\x0aLinkList *p = head\x0d\x0aLinkList *anode = (char *)malloc(size(node))\x0d\x0aanode->buffer = (char *)malloc(size(BufferSize))\x0d\x0astrncpy(anode->buffer,data,BufferSize)\x0d\x0aanode->next = NULL:\x0d\x0awhile(p->next) p = p->next\x0d\x0ap->next = anode\x0d\x0a}\x0d\x0a \x0d\x0avoid DealData(LinkList *head) {\x0d\x0aLinkList *p = head->next\x0d\x0aif(p) {\x0d\x0ahead->next = p->next\x0d\x0a// p->buffer指向的数据待处理\x0d\x0afree(p->buffer)// 处理完毕,释放空间\x0d\x0afree(p)\x0d\x0a}\x0d\x0a}欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)