永发信息网

请问各位大神,如何理解c语言的缓冲区。以及到底是如何实现的呢,最好有实现代码,

答案:1  悬赏:30  手机版
解决时间 2021-02-11 12:11
  • 提问者网友:書生途
  • 2021-02-11 05:12
请问各位大神,如何理解c语言的缓冲区。以及到底是如何实现的呢,最好有实现代码,
最佳答案
  • 五星知识达人网友:等灯
  • 2021-02-11 06:05
将数据以链表形式顺序存放,新数据总是放在表尾,待处理的数据总是在头结点下的第一个结点,处理完毕则释放空间。
缓冲器为暂时置放输出或输入资料的内存。缓冲器内资料自储存设备(如硬盘)来,放置在缓冲器中,须待机送至CPU或其他运算设备。缓冲区(buffer)这个中文译意源自当计算机的高速部件与低速部件通讯时,必须将高速部件的输出暂存到某处,以保证高速部件与低速部件相吻合. 后来这个意思被扩展了,成为"临时存贮区"的意思。
#define BufferSize 1024 // 合适的大小你知道的
typedef struct node {
char *buffer;
struct node *next;
}*linkList;

LinkList *InitList() {
LinkList *head;
head = (char *)malloc(size(node));
head->next = NULL:
return head;
}

void AddData(LinkList *head, char *data) { // 将新数据添加到表尾
LinkList *p = head;
LinkList *anode = (char *)malloc(size(node));
anode->buffer = (char *)malloc(size(BufferSize));
strncpy(anode->buffer,data,BufferSize);
anode->next = NULL:
while(p->next) p = p->next;
p->next = anode;
}

void DealData(LinkList *head) {
LinkList *p = head->next;
if(p) {
head->next = p->next;
// p->buffer指向的数据待处理
free(p->buffer); // 处理完毕,释放空间
free(p);
}
}
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯