일부 로컬 변수에 따라 내용으로 파일을 생성 중입니다. 파일이 얼마나 오래 끝날 지 모르겠습니다. 고정 크기의 buffer[]
배열을 정의 했으므로 생성 된 파일의 마지막 문자는 가비지입니다. 파일에 쓰기 전에 buffer[]
배열을 어떻게 다듬을 수 있습니까? 또는 fwrite
사용 된 바이트 만?fwrite 전에 버퍼 []에서 사용하지 않는 항목 정리하기
FILE * pFile = NULL;
char buffer[300];
int ret_val = -1;
strcpy_s(buffer, "The path is \"");
strcat_s(buffer, pathVariable);
strcat_s(buffer, "\"\n");
pFile = fopen(myfile, "w");
if(NULL == pFile)
{
perror("File opening error");
return -1;
}
ret_val = fwrite(buffer, 1, sizeof(buffer), pFile);
if(sizeof(buffer) != ret_val)
{
perror("File writing error");
return -1;
}
fclose(pFile);
'int used_bytes = sizeof ("경로는 \" ") + sizeof (pathVariable) + sizeof ("\ "와 같은 것을하고 싶지 않습니다. \ n ");'누군가는'strcpy'에서 문자열을 바꿀 수 있기 때문에 여기서 변경하는 것을 잊어 버릴 수 있습니다. 'strcpy'와'strcat'는 사용하지 않는 바이트를 -2로 설정합니다. 아마도, -2의 시작을 확인해야합니다. – mustafa
@mustafa : 나는 네가'strlen (buffer)'를 원한다고 생각한다. – NPE
네, 정확히 내가 필요로하는 것이 었습니다. 나는'fwrite (buffer, 1, strlen (buffer), pFile);을 사용해야했다. – mustafa