char 缓冲区是否有最大大小?我有一个程序正在收集 char 缓冲区的字符串并将其写入 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。这个问题是我不断地用上面的代码一次又一次地添加到那个缓冲区 - 最终我ca我的procfile并且文本被切断了 - 它不会像我想要的那样永远持续下去)-=。