字符緩衝區是否有最大大小?我有一個程序正在爲char緩衝區收集字符串並將其寫入proc文件。在某一點後,它似乎停止寫東西 - 那裏有太多東西嗎?什麼是最大尺寸,我可以解決這個問題?C中字符緩衝區的最大大小?
這是代碼。這是一個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;
}
所有在我的代碼是這樣的事情是事情remalloc緩衝區,並添加到它。此外,該read_info是爲procfile。這個問題是我一直向上面的代碼中添加上面的代碼 - 最終我加入了我的proc文件和文本中斷 - 它不會像我想要的那樣永遠持續下去) - =。
顯示代碼。 'buffer'是一個靜態數組還是'malloc'ed? –
字符串大小總是令人頭痛......它通常由您的使用和運行平臺來近似。我經常使用的兩種尺寸是255和10000 – texasbruce
'begin_input'變成了多長時間? 'char answer_buf [strlen(begin_input)+ 1 + 14];如果堆棧變大,可能會溢出。 –