파일복사 프로그램~ argc argv 에 대해서 질문합니다
핫블랙
질문 제목 : 파일복사 프로그램~ argc argv 에 대해서 질문합니다질문 요약 :파일복사 프로그램~ argc argv 에 대해서 질문합니다
질문 내용 :
#includestdio.h
int main(int argc,char* argv[])
{
FILE *fp_r,*fp_w;
char buf[256];
int size;
fp_r=fopen(argv[1],rb);
if(fp_r==NULL)
{
printf(입력파일 오픈 오류 ! );
return 0;
}
fp_w=fopen(argv[2],wb);
if(fp_w==NULL)
{
printf(출력파일 오픈 오류 ! );
return 0;
}
while(1)
{
size=fread(buf, 1, sizeof(buf), fp_r);
fwrite(buf, 1,size, fp_w);
break;
}
printf(***복사***\n);
fclose(fp_r);
fclose(fp_w);
return 0;
}
어제 질문올린사람입니다 과제는 벌써제출했는데 아직도 이해가안되는부분이 있어서 질문다시 올립니다
전체적인 주석과 argc argv에 대한설명을 해주셨으면좋겠습니다 .어제 답변올려주신분 정말감사합니다
정말 많은 도움받았습니다
-
에가득
fread 의 리턴값은 읽어들은 항목의 수 입니다 .
읽어들인 항목의 갯수 fread( 저장할 메모리 공간 , 한 항목의 크기 , 읽을 항목의 갯수 , 파일 포인터 );
한글로 풀어본 fread 함수가 저런 식인데요 ;
즉 , 같은 10 바이트를 읽더라도 ,
size = fread( buf , 1 , 10 , fp_r );
와
size = fread( buf , 2 , 5 , fp_r );
와
size = fread( buf , 5 , 2 , fp_r -
소라
size=fread(buf, 1, sizeof(buf), fp_r); 에서 size의 역할은뭔가요?? size를 빼면 실행이되지않던데
솔직히말하자면 이해는 제대로안하고 소스를코딩하는데만 주력해서 부분부분따져보면 이해를못하네요;; -
에가득
전체적인 주석은 다른분이 올려주시지 않을까해서 패스하고 ^^;
arg 에 관해서만 간단히 ;
일단 argv 부터 말씀 드리면 , 명령 프롬프트 상에서
실행파일 인자1 인자2
이게 두개의 인자를 주고 실행 파일을 실행 하신다면
argv[ 0 ] == \실행파일\
argv[ 1 ] == \인자1\
argv[ 2 ] == \인자2\
이렇게 들어가게 됩니다 . 띄워쓰기로 구분되니 뒤로 인자가 더 있다면 순서대로 차곡차곡 들어가게 되고요 .
argc 에는