Segmentation fault (core dumpd) 오류나는데요 ... 소스에는 문제가 없어보이는데 왜그럴까요? ㅠㅠ

jmonaco88의 이미지

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
 
int main(int argc, char *argv[])
{
        FILE *from, *to;
        char str[128];
 
        if(argc < 3){
                printf("Usage: copy <from> <to>\n");
                exit(1);
        }
 
        if((from = fopen(argv[1], "r")) == NULL){
                printf("Cannot open file1 \n");
                exit(1);
        }
 
        if((from = fopen(argv[2], "w")) == NULL){
                printf("Cannot open file2 \n");
                exit(1);
        }
 
        while( !feof(from) ){
                fgets(str, 127, from);
 
                if(ferror(from)){
                        printf("error on input\n");
                        break;
                }
                if( !feof(from))
                  fputs(str, to);
                if(ferror(to)){
                        printf("error on output\n");
                        break;
                }
        }
        fclose(from);
        fclose(to);
 
        return 0;
 
}

소스는 대략 이렇게 됩니다..

argv에 두개의 파일 이름을 적어주고요

argv[1]에 들엉는 파일을 argv[2]에 들어오는 파일에 복사하는 소스인데요

이상하네요 ㅠㅠ

dgkim의 이미지

line 20이 문제입니다.

jmonaco88의 이미지

고맙습니다~ 하루종일 이것만 쳐다보니까 저걸 발견을 못했군요 ㅎㅎ