gpt4 book ai didi

c - C 中字符缓冲区的最大大小?

转载 作者:行者123 更新时间:2023-11-30 17:56:56 25 4
gpt4 key购买 nike

字符缓冲区有最大大小吗?我有一个程序正在收集字符缓冲区的字符串并将其写入 proc 文件。在某一点之后,它似乎停止写东西了——里面有太多东西了吗?我可以解决这个问题的最大尺寸是多少?

这是代码。这是一个 LKM - Limits.h 可以从内核空间获取吗?

最重要的是:

const char* input = "hooloo\n";

下一个:

int read_info( char *page, char **start, off_t off, int count, int *eof, void *data )
{

unsigned int mem;
char answer_buf[strlen(input) + 1 + 14];
name_added = vmalloc(strlen(input) + 1 + 14);
strcpy(name_added, input);
strcat(name_added, extension);
mem = sprintf(answer_buf, "%s\n", name_added);
memcpy(page, answer_buf, mem);
return strlen(answer_buf) + 1;
}

我的代码中的所有内容都是这样的,都是重新分配缓冲区并添加到其中的内容。另外,read_info 用于 procfile。这个问题是我不断地用上面的代码一遍又一遍地添加到该缓冲区 - 最终我得到了我的 procfile 并且文本被切断 - 它不会像我想要的那样永远持续下去)-=。

最佳答案

“C 语言”中没有具体的最大大小。 C 平台上任何对象的理论(或“潜在”)最大大小由实现决定,并且通常源自底层机器平台和操作系统的属性。

在具有平面内存模型的平台上,理论上它通常会受到地址空间大小的限制,而实际上会受到可用空闲内存(或特定类型)大小的限制。

在具有分段内存模型的平台上,它可能受到段大小的限制,该段大小小于地址空间大小。尽管实现可以通过在代码中“模拟”平面内存模型来自由地突破该限制。因此,在此类平台上,最大对象大小也可能取决于编译设置。

关于c - C 中字符缓冲区的最大大小?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13102642/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com