티스토리 뷰

반응형

//141005 Source by YoWu(uyu423@gmail.com)

#include "stdio.h"
#include "stdlib.h"

int main(void) {
	FILE *rfp, *wfp;
	char buf[BUFSIZ];
	int n;

	if((rfp = fopen("abc.txt", "r")) == NULL) {
		perror("fopen: abc.txt");
		exit(1);
	}

	if((wfp = fopen("ac.txt", "w")) == NULL) {
		perror("fopen : ac.txt");
		exit(1);
	}

	while((n=fread(buf, sizeof(char) * 2, 1, rfp)) > 0) {
		fwrite(buf, sizeof(char), n, wfp);
	}

	fclose(rfp);
	fclose(wfp);

	return 0;
}


위 예제는 유닉스 시스템 프로그래밍 2장 연습문제의 4번에  해당합니다. 문제는 대충 문자 두개가 있을 때 앞에 하나만 출력하는 그런 문제


fread 함수 원형

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

ptr : 저장할 버퍼

size : 읽어올 데이터 크기

count : 읽어올 데이터 갯수

stream : 읽어올 파일 디스크립터


fwite 함수 원

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

ptr : 읽어올 버퍼

size : 파일 디스크립터에 기록할 데이터 크기

count : 기록할 데이터 갯수

stream : 기록할 디스크립터



반응형
프로필사진

Yowu (Yu Yongwoo)

흔한 Node.js/Java 백엔드 개발자입니다
Ubuntu와 MacOS 데스크탑 개발 환경을 선호합니다
최근에는 vscode와 IntelliJ를 사용하고 있습니다
vscode에는 neovim, IntelliJ는 ideaVim
개발용 키보드는 역시 HHKB Pro 2 무각입니다
락 밴드에서 드럼을 쳤습니다

댓글쓰기 폼
«   2022/05   »
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31        
글 보관함
Total
3,335,196
Today
51
Yesterday
223