Chris Jester-Young 및 piCookie의 의견을 바탕으로 다음과 같은 기능을 개발했습니다. 유용하다고 생각하길 바랍니다.
int fileCheckSum(const char *fileName)
{
FILE *fp;
long fileSize;
char *fileBuffer;
size_t result;
int sum = 0;
long index;
fp = fopen(fileName, "rb");
if (fp == NULL)
{
fputs ("File error",stderr);
exit (1);
}
fseek(fp, 0L, SEEK_END);
fileSize = ftell(fp);
fseek(fp, 0L, SEEK_SET);
fileBuffer = (char*) malloc (sizeof(char) * fileSize);
if (fileBuffer == NULL)
{
fputs ("Memory error",stderr);
exit (2);
}
result = fread(fileBuffer, 1, fileSize, fp);
if (result != fileSize)
{
fputs ("Reading error", stderr);
if (fileBuffer != NULL)
free(fileBuffer);
exit (3);
}
for (index = 0; index < fileSize; index++)
{
sum += fileBuffer[index] & 255;
}
fclose(fp);
if (fileBuffer != NULL)
free(fileBuffer);
return sum % 32767;
}
OP가이 질문으로 인터넷을 스팸했습니다. 분명히 그는 CodeProject에 대한 조언을 이미 제안했기 때문에 대답을 찾고 있지 않습니다. – leppie
불행히도 나는 대안을 찾고 있으므로 사용중인 서버에 dataconvert 라이브러리를 설치할 수 없습니다. 나는 7 개의 포럼에서 인터넷에 스팸을 보내는 질문을하고 싶지 않습니다. 제 가정은 각 포럼마다 다른 독자가 있어야하고 각자 다른 응답을받을 것입니다. –