char 버퍼의 최대 크기는 있습니까? char 버퍼의 문자열을 수집하고 proc 파일에 쓰는 프로그램이 있습니다. 어떤 시점 이후에 글쓰기를 멈추는 것처럼 보입니다. 거기에 너무 많이 있습니까? 최대 크기는 얼마입니까? 그래서이 문제를 해결할 수 있습니까?C에서 char 버퍼의 최대 크기?
다음은 코드입니다. 이것은 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 용입니다. 이 문제는 위의 코드를 계속해서 버퍼에 계속 추가하는 것입니다. 결국 필자는 procfile과 텍스트를 잘라 내고, 끝내지 않습니다. - 내가 원하는 것처럼 영원히 계속하지 않습니다.) =.
코드를 표시하십시오. 'buffer'는 정적 배열인가,'malloc'인가요? –
문자열 크기는 항상 두통입니다 ... 일반적으로 사용 및 실행 플랫폼에 의해 근사값이 계산됩니다. 자주 사용하는 두 가지 크기는 255와 10000입니다. – texasbruce
'begin_input'은 얼마나 오래 걸리나요? 'char answer_buf [strlen (begin_input) + 1 + 14];가 커지면 스택이 오버 플로우 될 수 있습니다. –