디시인사이드 갤러리

갤러리 이슈박스, 최근방문 갤러리

갤러리 본문 영역

소스 질문좀요 ㅜㅜ

런공갤로그로 이동합니다. 2011.12.09 19:59:19
조회 36 추천 0 댓글 0

#include <fcntl.h>
#include <stdlib.h>
#include <stdio.h>
#include <unistd.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <pwd.h>
#include <grp.h>


int FILECopy(int argc, char *argv[]) {  // 파일을 복사하는 함수
 int rfd, wfd, n;        // 파일을 읽어올때 사용할 rfd와 쓸때 사용할 wfd 읽어올정보가있는지 판별할 n
 char buf[1024];        // 복사할 파일에서 읽은 정보를 임시저장하는 배열
 
 rfd = open(argv[2], O_RDONLY);   // 저수준으로 읽기전용으로 파일 오픈
 if(rfd == -1) {        // 읽지 못하면 종료
  perror("rfd file open err");
  exit(1);
 }
 wfd = open(argv[3], O_CREAT | O_TRUNC | O_WRONLY, 0644);  // 저수준의 쓰기파일 쓰기전용으로생성 없다면 생성하고 있다면 덮어쓴다
 if(wfd == -1) {        // 읽어올 파일을 생성하지 못하면 종료
  perror("wfd file open err");
  exit(1);
 }
 while ((n=read(rfd, buf, 128)) >  0 ) { // 읽어올 파일에서 정보를 받고 파일의 끝에 도달하면 종료
  if(write(wfd, buf,  n) !=n) {    // 쓸 정보가 있다면 종료
   perror("write err");
  }
   if(n == -1) {        // 읽지 못하면 종료
    perror("read err");
   }
 }
}

usage(void) {            // 아무런 옵션을 적지 않으면 사용법을 출력
 printf("-c(복사) -p(복사) -m(이동) -v(이동) -n(UID 및 GID 변경)\n");
 printf("-c 옵션 사용법 lm -c 파일및디렉토리명 파일및디렉토리명\n");
    printf("-p 옵션 사용법 lm -p 파일및디렉토리명 파일및디렉토리명\n");
 printf("-m 옵션 사용법 lm -m 파일및디렉토리명 파일및디렉토리명\n");
 printf("-v 옵션 사용법 lm -v 파일및디렉토리명 파일및디렉토리명\n");
 printf("-n 옵션 사용법 lm -n 파일및디렉토리명  UID GID\n");
}
int main(int argc, char *argv[]) {
 
 int rfd, wfd, delete, option, i=0;  // 사용할 변수 선언
 char input;
 struct stat statbuf;       // statbuf로 stat 구조체 선언
 struct passwd *u_info;      // u_info로 passwd 구조체 선언
 struct group *g_info;      // g_info로 group 구조체 선언
   char pathbuf[BUFSIZ]; //원본파일의 경로를 저장할 버퍼
 
 if(argc < 2) {   // 입력 받은 옵션이 없으면 옵션 사용법 출력
  usage();
  return 0;
 }

 if (stat(argv[2], &statbuf) == -1) { // 올바른 파일 정보가 입력되지 않으면 종료
  perror("stat err");
  exit(1);
 }
 if(S_ISREG(statbuf.st_mode) == 1) {  // 입력된게 파일이라면
  printf("선택하신 %s 는 파일입니다.\n", argv[2]);

  while ((option = getopt(argc, argv, "cpmvn:")) !=-1) { // 옵션으로 -c -p -m -v -n 구현 입력된 옵션이 없다면 실행하지 않는다
   switch (option) {
    case 'c':   // c옵션을 사용하면
     printf("파일 복사를 원하십니까? ( Y 또는 N ) : ");
     scanf("%c", &input);   // input에 식별자를 입력받는다.
    
     if (input == 'y' || input == 'Y') {
      FILECopy(argc, argv); //파일복사함수호출
      realpath(argv[3], pathbuf); //복사된 파일의 경로를  저장
      printf("파일 복사가 %s 에 성공적으로 이루어졌습니다.\n", pathbuf);
      break;
     }
     else
      printf("파일 복사가 이루어 지지 않았습니다.\n");
      break;
    case 'p':   // p옵션을 사용하면
     scanf("%c",&input);   // input에 식별자를 입력받는다.
     if (input == 0) {
      FILECopy(argc, argv); //파일복사함수호출
      realpath(argv[3], pathbuf); //복사된 파일의 경로를  저장
      printf("파일 복사가 %s 에 성공적으로 이루어졌습니다.\n", pathbuf);
      break;
     }
     else
      printf("파일 복사가 이루어 지지 않았습니다.\n");
      break;



여기서 'p' 옵션 이게 cp명령어의 f옵션 기능을 담당 하는데
y/n메세지 출력 없이 강제로 바로 파일 복사가 되게끔 하려면 if 안에 어떤 내용을 써야 될까요?ㅜㅠㅠ


추천 비추천

0

고정닉 0

0

댓글 영역

전체 댓글 0
등록순정렬 기준선택
본문 보기

하단 갤러리 리스트 영역

왼쪽 컨텐츠 영역

갤러리 리스트 영역

갤러리 리스트
번호 제목 글쓴이 작성일 조회 추천
설문 가족과 완벽하게 손절해야 할 것 같은 스타는? 운영자 24/06/24 - -
297734 프갤 성님들 질문좀 할게요 [3] 주민등록번호(118.39) 12.01.07 37 0
297733 혹시 윈도우 7에서 바이러스포함되있다고 삭제시키는기능 [2] 유동닉24호(115.21) 12.01.07 6995 17
297732 참나 모른다면 모르지.. 글은 왜 지우고 질알 일광면(119.198) 12.01.07 33 0
297729 형들 오늘 부터 C++ 배운는데 visual express 2010실행? [1] 쒦뚫쉚뚫샒휆뚫뚫쒦갤로그로 이동합니다. 12.01.07 53 0
297728 로그인중이면 LOGOUT, OPTION이 보이게하고싶은데; 궁금해요(203.171) 12.01.07 29 0
297725 자바의정석책살거임! [3] IMhouse갤로그로 이동합니다. 12.01.07 147 0
297724 비쥬얼베이직이야기 [2] 영어쓰던남자갤로그로 이동합니다. 12.01.07 81 0
297723 프갤 횽들! 키보드 뭐 써? [6] 쿠마코갤로그로 이동합니다. 12.01.07 121 0
297721 언어선택이중요함? [10] IMhouse갤로그로 이동합니다. 12.01.07 134 0
297720 이상한 의문이 생겼는데 물어봐도 될까요? [4] 궁금해요(203.171) 12.01.07 89 0
297719 망치고 온 면접 후기 한마음택배(114.202) 12.01.07 148 0
297718 c언어때문에 고민되네요. [3] 아정말(112.186) 12.01.07 109 0
297717 자바 array 관련질문좀 [4] 해외거주중갤로그로 이동합니다. 12.01.07 107 0
297715 안녕하세요 jquery html5어떤걸 먼저 배우는게 좋아요? [1] 하응(222.107) 12.01.07 90 0
297714 인생션배들ㅠ조언좀 [2] IMhouse갤로그로 이동합니다. 12.01.07 64 0
297713 형들 ActiveX를 대체할만한 기술이 있을까?? [1] 엑티브엑스(112.218) 12.01.07 145 0
297712 gdb 아시는분들만 .. [4] 똘꾸갤로그로 이동합니다. 12.01.07 61 0
297711 노력한다고 모두 성공하진 않지만 [5] 전방수류탄*갤로그로 이동합니다. 12.01.07 137 0
297710 포인터 배열 크기를 아는 방법 좀 알려주세요. [9] 에이시아(125.31) 12.01.07 172 0
297709 3D엔진 그렇게 구현하기 힘드나요??? [4] 에이시아(125.31) 12.01.07 173 0
297707 꼬인다꼬여 [3] FishKing갤로그로 이동합니다. 12.01.07 77 0
297706 병특 취업하는거 왜 이렇게 힘드냐 [11] 토페갤로그로 이동합니다. 12.01.07 211 0
297705 제 블로근데 이거 보임?? [11] [성대아싸]갤로그로 이동합니다. 12.01.07 174 0
297704 김문수 - 나 도지사 김문숩니다(feat.남양주소방서) [2] 아이유공부법갤로그로 이동합니다. 12.01.07 50 0
297703 1 인생 계획 [1] 1(211.197) 12.01.07 57 0
297702 횽들 5공 컴공과에서 삼성갈수 있나여? [5] 헿헿(123.109) 12.01.07 257 0
297701 나 게임엔진 만들래! [12] 엔지니어링(175.116) 12.01.07 187 0
297699 아싸3디 , 티팟 하구 수잔 원숭이 추가 [6] [성대아싸]갤로그로 이동합니다. 12.01.07 140 0
297698 도대체 이유가 뭘까? [9] 음..(175.211) 12.01.07 116 0
297695 i++이랑 i=i+1 이랑 다른것임? [6] 1(211.197) 12.01.07 165 0
297694 열심히 해서 성공하리라는 보장은 없음. ㅇㅇ [3] ☎v2.0™갤로그로 이동합니다. 12.01.07 101 0
297690 문제좀 해결좀.. [5] 이것좀..(175.211) 12.01.07 52 0
297687 C마스터 드립 지겹다. [3] 다채(211.230) 12.01.07 128 0
297685 어헝 삼성 전략기획실 다니는 넘한테 물어봤는데.. [1] ☎v2.0™갤로그로 이동합니다. 12.01.07 175 0
297684 이거좀 도와줘 [1] elwlwlwk갤로그로 이동합니다. 12.01.07 58 0
297683 scheme 스킴x 스췜o [1] elwlwlwk갤로그로 이동합니다. 12.01.07 56 0
297682 스레드 OR 안드로이드 질문좀 쿄스케갤로그로 이동합니다. 12.01.07 51 0
297681 에플릿 에러 왜뜨는거야 ㄱㄷㅈ(175.201) 12.01.07 119 0
297680 c++질문좀... [3] 잉크(125.177) 12.01.07 118 0
297677 근데 이문동쭈쭈바횽 프갤접었나여? 추상화갤로그로 이동합니다. 12.01.07 42 0
297675 시발 되도않는 연애 때려치우고 공부할겁니다 [5] 추상화갤로그로 이동합니다. 12.01.07 136 0
297674 휴일출근.. [4] 토쏠려(14.52) 12.01.07 87 0
297673 근무환경 좋은 나라가 어디임? [3] YesMan갤로그로 이동합니다. 12.01.07 177 0
297671 여기 전자공학도 있나요?? (있으면 좀 봐주세요!) [4] 질문좀요(121.167) 12.01.07 132 0
297669 C가 쉽다고??? [2] C초보(114.206) 12.01.07 98 0
297668 형드라 한국이 IT강국이니까 컴퓨터과가면 좋겠죠?ㅎㅎ [6] LALR(211.222) 12.01.07 137 0
297665 큐브 월드 [1] [성대아싸]갤로그로 이동합니다. 12.01.07 102 0
297664 C++, 언리얼3 엔진을 이용한 게임 프로그래밍 그룹 과외 모집합니다 [2] 게임스터디(121.128) 12.01.07 205 0
297663 strtok함수활용 [1] 궁금점(175.211) 12.01.07 154 0
297660 와 시발 미국 컴퓨터 사이언스 전공 학생들 평균연봉 7700만원ㅋㅋㅋㅋㅋ [2] ㅁㄴㅇㄹ(59.30) 12.01.07 409 0
갤러리 내부 검색
제목+내용게시물 정렬 옵션

오른쪽 컨텐츠 영역

실시간 베스트

1/8

뉴스

디시미디어

디시이슈

1/2