[핑클아루]님이
남기신 글:
>죄송합니다.
>
>질문을 잘못드렸어여.
>
>int main(int argc , char *argv[]){
> if(argc != 1){
> fprintf(stderr , "Error 1\");
> return 1;
>}
>
>cp $argv[0] $argv[1]
>
>ImageCopy 라는쉘을 이렇게 해서 짰는데여.이게 실행이 안됩니다.
>실행은 웹에서 할려고 하거든여
>
>근데 실행을 하면
>
>./ImageCopy: line 3: syntax error near unexpected token `main(i'
>./ImageCopy: line 3: `int main(int argc , char *argv[]){'
>
>자꾸 이런에러가 나오는데 암만 찾아봐도 무슨에러인지
나와있질 않네요
>
>쉘복사하는게 틀렸나여.. 변수값을 전달을 저렇게 해서 받으면
된다고 하는데 다시 한번 충고 부탁드립니다.
========================================
fprintf(stderr , "Error 1\");
가 아니라
fprintf(stderr , "Error 1\n");
이렇게 해야 합니다.
C 전문가가 아니라서...
-- imagecopy.c ------------------------
#include
#include
int main(int argc, char *argv[])
{
FILE *fin, *fout;
char fto[256];
if(argc != 3) { /*** argv[0] 은 프로그램 자신 ***/
printf("Error arguments : %d\n", argc-1);
exit(1);
}
if((fin=fopen(argv[1],"r")) == NULL) {
printf("%s file can't read\n", argv[1]);
exit(1);
}
if((fout=fopen(argv[2],"w")) == NULL) {
printf("%s file can't write\n", argv[2]);
exit(1);
}
printf("cp %s %s\n", argv[1], argv[2]);
while(fgets(fto,256,fin) != NULL) {
fputs(fto, fout);
}
fclose(fin);
fclose(fout);
return 0;
}
------------------------------
$ gcc -o imagecopy imagecopy.c
이렇게 해 보세요.
|