checksum 구하는 코드
2023. 4. 15. 01:06ㆍ코딩테스트 Intro/C
728x90
여기
바이너리 파일의 checksum은 일련의 바이트 값들의 합을 의미합니다. 따라서, 각 바이트 값들을 더한 결과를 반환하는 함수를 작성할 수 있습니다.
아래는 이를 구현한 예시 코드입니다.
c
Copy code
#include <stdio.h>
long checksum(char *filename) {
FILE *fp;
long sum = 0;
// 파일 열기
fp = fopen(filename, "rb");
// 파일이 존재하지 않는 경우
if (fp == NULL) {
return -1;
}
// 파일 끝까지 읽으면서 바이트 값들을 더함
while (!feof(fp)) {
unsigned char c = fgetc(fp);
sum += (long)c;
}
// 파일 닫기
fclose(fp);
return sum;
}
위의 함수는 입력으로 파일 이름을 받아 해당 파일의 checksum 값을 반환합니다. 파일을 바이너리 모드로 열어서 각 바이트 값을 읽어 합을 계산하고, 파일을 닫아줍니다. 파일이 존재하지 않는 경우에는 -1을 반환합니다.
사용 예시:
c
Copy code
long file_sum = checksum("example.bin");
printf("Checksum of the file: %ld\n", file_sum);
위와 같이 함수를 호출하면 파일의 checksum 값을 계산하여 출력합니다.
728x90
'코딩테스트 Intro > C' 카테고리의 다른 글
[C/C++ 코딩테스트 문법] do while (0) | 2024.05.10 |
---|---|
문자열 찾기 알고리즘 (0) | 2023.04.15 |
[C언어] 파일 입출력 부분 클론코딩 할 것 (0) | 2023.04.14 |
[C언어] 바이너리 데이터 입출력 관련 (0) | 2023.04.14 |
[C언어] feof, 문자 문자열 단위 파일 복사 프로그램 (0) | 2023.04.14 |