2012-02-25 2 views
-3

유닉스에서 파일을 압축하기위한 C 코드를 작성하려고했습니다. UNIX 셸 명령 "zip -r filepath"를 사용하여 시스템 기능을 사용하여 구현했습니다. zip -r filepath 명령은 UNIX 쉘을 통해 직접 실행할 때 작동합니다.UNIX 명령 줄을 통해 프로그래밍 방식으로 파일을 압축하는 방법은 무엇입니까?

나는

#include <stdlib.h> 
#include <stdio.h> 
#include <unistd.h> 
int main() 
{ 
int system(const char *zip -r /root/Desktop/hi.txt); 
return 0; 
} 

다음과 같이 코드를 위튼이 그러나 나는 말을 컴파일 타임 오류를 얻고있다

"error:expected ‘;’, ‘,’ or ‘)’ before string constant" 

syntax system function : http://linux.die.net/man/3/system 
int system(const char *command); 

어떻게이 문제를 해결할 수 있습니까? UNIX 명령을 따옴표로 묶어 보았습니다. 작동하지는 않았지만.

system("zip -r /root/Desktop/hi.txt"); 
+5

당신은 읽기 조금 더 많은 시간을 할애 할 필요가 좋은 C 책과 튜토리얼/예제 ... – Mat

답변

0

이 컴파일러는 int는 유형이고 system 아주 잘 식별자가 될 수 있기 때문에 무언가의 선언으로 해석 시작 int system(const char *zip -r /root/Desktop/hi.txt);을 구문 분석 할 때 : 당신이 시도 C.에서 함수를 호출하지 어떻게

+0

고맙습니다. Alex ....... 지금 실행할 수 있습니다! – priya

4

이름과 괄호 때문에 후행 ;은 함수 프로토 타입으로 해석 될 수 있습니다. 그러나 컴파일러는 -r /root/Desktop/hi.txt으로 질식합니다. 왜냐하면 함수 매개 변수 목록의 유효한 부분으로 구문 분석 할 수 없기 때문입니다.

당신은 선언을하지 않아도, 당신이 intconst char * 드롭 그래서 당신은 함수 호출을해야하고, 문자열 매개 변수를 인용 할 필요가 :

... 
{ 
system("zip -r /root/Desktop/hi.txt"); 
return 0; 
} 
+0

안녕하세요, 많이 감사합니다! 이것은 효과가 있었다. – priya

관련 문제