해바

Lab #1 본문

System Programming

Lab #1

Bacha 2019. 11. 16. 21:14

open(), close(), read(), write() 시스템 호출을 이용하여, 한 파일의 내용을 다른 파일에 복사하는 copy.c 프로그램을 작성하라.

 

 

#include <stdlib.h>
#include <stdio.h>
#include <fcntl.h>
#include <unistd.h>

#define BUFSIZE 512
#define PERMS 0644

int main(int argc, char** argv) {
	char buffer[BUFSIZE];
	int ofd, nfd;		// ofd : 원본파일, nfd : 생성할 파일
	ssize_t nread;

	if((ofd = open(argv[1], O_RDONLY)) == -1) {
		printf("Cannot open %s\n", argv[1]);
		exit(1);
	}
	// 원본파일 열기
	if((nfd = open(argv[2], O_RDWR|O_CREAT, PERMS)) == -1) {
		printf("Cannot create %s\n", argv[2]);
		exit(1);
	}
	// 복사할 파일 생성
	while((nread = read(ofd, buffer, BUFSIZE)) > 0) {
		write(nfd, buffer, nread);
	}
	// 파일 복사
	close(ofd);
	close(nfd);
	exit(0);
}

 

컴파일

gcc copy.c

 

실행 :

./a.out

'System Programming' 카테고리의 다른 글

Lab #6  (0) 2019.11.16
Lab #5  (0) 2019.11.16
Lab #4  (0) 2019.11.16
Lab #3  (0) 2019.11.16
Lab #2  (0) 2019.11.16
Comments