인자값을 이용해 파일복사하기

 

a.cb.cmain1.c

 

des.txt main2.csrc.txt


바이너리 데이터의 입출력 : fread, fwrite

바이너리 데이터의 입출력을 진행하는 함수이다.

size_t fread(void *buffer, size_t size, size_t count, FILE * stream);

->성공 시 전달인자 count, 실패 또는 파일의 끝 도달 시 count보다 작은 값 반환

fread((void *)buf, sizeof(int), 12, fp);    fp는 FILE 구조체 포인터

sizeof(int)크기의 데이터 12개를 fp로부터 읽어 들여 배열 buf에 저장해라.

fread 함수는 두 번째 전달인자와 세 번째 전달인자의 곱 바이트 크기만큼 데이터를 읽어 들이는 함수이다. 따라서 위의 fread함수호출을 통해서 int형 데이터 12개를 fp로부터 읽어서 배열 buf에 저장하게 된다.

이 함수는 실제로 읽어 들인 데이터의 갯수를 반환하는데(읽어 들인 바이트 수가 아니라 갯수이다.), sizeof(int) 크기의 데이터를 12개 읽어 들이는 경우이다. 함수의 호출이 성공을 하고 요청한 분량의 데이터가 모두 읽혀지면 12가 반환된다.

함수의 호출이 성공을 했지만 파일의 끝에 도달을 해서 12개를 모두 읽어 들이지 못했거나 오류가 발생하는 경우에는 12보다 작은 값이 반환된다.

size_t fwrite(const void * buffer, size_t size, size_t count, FILE * stream);

->성공 시 전달인자 count, 실패 시 count보다 작은 값 반환

int buf[7]={1, 2, 3, 4, 5, 6, 7};

fwrit((void*)buf, sizeof(int), 7, fp);

sizeof(int)크기의 데이터 7개를 buf로부터 읽어서 fp에 저장하라.

 

AA.binmain3.c



문제 ch24-1

 

ch24quiz1.c

 

ch24quiz2.c

 ch24quiz3.c