리눅스 copy 명령어 구현(copyfile, 파일 복사, append)
- 최초 등록일
- 2011.06.01
- 최종 저작일
- 2010.06
- 6페이지/
압축파일
- 가격 1,000원

판매자inta**** (본인인증회원)
42회 판매

소개글
과제 내용
copyfile( const char* src, const char* dest );
- src 파일을 dest로 복사한다.
ex> copyfile( "infile", "outfile" );
infile을 outfile로 복사
상세내용
1. 같은 디렉토리에 outfile이 없는 경우
- outfile을 생성하고 infile을 두번 복사한다.
ex> infile의 내용이 abcd 인 경우 이 파일을 outfile로 복사하면
outfile의 내용은 abcdabcd가 된다
2. 같은 디렉토리에 outfile이 있는 경우 사용자에게 덮어쓰기를 할것인지, 어펜드를 할지 물어본다
a) 사용자가 덮어쓰기를 선택한 경우
--> 기존 파일의 내용을 지우고 덮어씌운다
b) 사용자가 어펜드를 선택한 경우
--> 기존 파일의 끝에 새로운 내용을 복사한다.
( a,b 모두 파일을 한번만 복사한다 )
2. 복사가 끝나고 복사된 파일의 크기를 화면에 출력한다.
목차
과제내용, 소스, 소스설명, 고찰, 등
본문내용
. 주요 소스 코드 설명
stat = open(dest,O_RDONLY);
if(stat == -1) { // 파일이있는지없는지조사
※ 파일이 있는 없는지 알아내는 방법으로 OPEN 함수를 써서 파일이 없을 경우에 나오는 에러값으로 알아냈습니다.
outfile=open(dest,O_WRONLY | O_CREAT | O_TRUNC, PERM)) == -1
※ O_CREAT 와 O_TRUNC 를 같이 써서 새로운 파일을 만들게 했습니다.
outfile=open(dest,O_RDWR , PERM)) == -1
..........................중간 부분 생략
if(num==2) { // append 할경우의데이타크기계산은원래데이타의크기까지알아야된다
while((nread=read(outfile,buffer,BUFSIZE))>0)
// append : 크기를알아볼때원본파일끝까지이동하므로따로해줄필요없다
filesize+=nread;
//lseek(outfile,0,SEEK_END);
}
※ APPEND의 경우엔 일단 READ,WRITE를 가능하게 OPEN한 다음에 다른것과 달리 원래있
참고 자료
없음
압축파일 내 파일목록
cp
보고서.hwp
cp.c
Makefile