C_C++

(C언어) 이진 파일(binary file) 복사하기

고니자니 2023. 5. 17. 06:26
반응형

2진 파일을 복사하는 C언어 코드입니다.

원본 파일을 읽어서 버퍼에 저장하고, 버퍼에 저장된 내용을 파일에 저장합니다.

fopen 함수는 파일을 열었을 때, 오류가 발생하면 NULL을 반환합니다.

#include <stdio.h>

#define BUFFER_SIZE 1024

int main() 
{
    FILE *sourceFile, *targetFile;
    char buffer[BUFFER_SIZE];
    size_t bytesRead;

    // 소스 파일 열기
    sourceFile = fopen("abc.exe", "rb");
    if (sourceFile == NULL) 
    {
        printf("abc.exe 파일을 열 수 없습니다.\n");
        return 1;
    }

    // 저장할 파일 열기
    targetFile = fopen("bcd.exe", "wb");
    if (targetFile == NULL) 
    {
        printf("bcd.exe에 저장할 수 없습니다.\n");
        fclose(sourceFile);
        return 1;
    }

    // 소스 파일에서 데이터 읽고 대상 파일에 쓰기
    while ((bytesRead = fread(buffer, 1, BUFFER_SIZE, sourceFile)) > 0) 
    {
        fwrite(buffer, 1, bytesRead, targetFile);
    }

    fclose(sourceFile);
    fclose(targetFile);

    return 0;
}

 

반응형