2015-02-02 2 views
0

지금은 fread을 다음과 같이 설정했습니다. bytesize을 명령 줄 인수로 변경하고 싶습니다.C - 명령 줄 인수에서 fread 매개 변수를 가져옵니다.

fread(buffer, filelen, bytesize, fileptr); 

알고있는 필수 유형은 'size_t'입니다. 따라서 사용하는 경우 올바른 것입니다 :

fread(buffer, filelen, (size_t)argv[1], fileptr); 
+0

이론적으로, 당신은'strtoul()'또는 그 근본 원인을 사용해야하지만, 크기가'int'에 들어 맞는 값을 오버 플로우시킬 것 같지는 않습니다. –

답변

1

는이

int bytesize = atoi(argv[1]); 
fread(buffer, filelen, bytesize, fileptr); 

처럼 뭔가를 할 수 있습니다.

1

argv에는 정수가 아닌 문자열 배열이 들어 있습니다. 이 문자열을 정수로 변환해야한다는 점에서 올바른 접근법에서 멀지는 않지만 올바르게 수행하지는 못합니다. C는 간단한 타입 캐스트가 정수를 구문 분석하지 않는 언어 중 하나입니다. 대신 atoi을 확인하십시오. 정수와 fread()에 그것을 전달하는 argv[1] 변환

관련 문제