티스토리 뷰


//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)

My MBTI type is ENTP. (Of course I do not believe it 100%, but I want to do that) I use Node.js to develop the backend. I use Ubuntu Linux as my development environment, and I love Vim. I am interested in open source and are keen to contribute. I have a bachelor's degree in computer science from Catholic University and now a software engineer at Plating Inc., I spent about 5 years developing and learning, and I am still interested in software development and culture. Recently, I am interested in React, Serverless structure, Domain Design Driven. Sometimes I play drums in the band.