gcc에서 디렉토리 삭제에 대한 질문입니다. 다음을 봐주세요. argv[5] ---> 삭제할 디렉토리. uid = atoi(argv[2]); // 유저아이디 ( 1000 ) gid = atoi(argv[3]); // 그룹아이디 ( 1000 ) chdir(argv[4]); //삭제할 디렉토리 가 있는 디렉토리로 디렉토리 변경 sprintf(locate, "rm -rf "%s/%s"", argv[4], argv[5]); // system(locate); } 그런데 지워지지 않는군요... -- 리눅스 만세!!!! ^^*
system 으로 실행하는 명령 문자열에 따옴표가 잘못 이어져 있어서 명령이 제대로 실행되지 않습니다. 문자열 안에 따옴표를 넣을 때는 이스케이프 처리가 필요합니다. 경로를 셸 명령으로 넘기는 방식은 위험하니 파일 삭제는 rmdir 이나 unlink 같은 함수로 직접 처리하는 것이 안전합니다.