2013-08-28 3 views
0

비디오 파일을 읽고 바이너리로 저장하고 비디오 파일로 다시 쓰고 싶습니다. 180MB 비디오로 테스트를 받았습니다. fread 함수를 사용했는데 비디오의 배열 크기가 작기 때문에 분할 오류가 발생합니다. 내가 160 * 1024 바이트 문자 배열을 사용fread, 큰 사이즈의 비디오 파일 용 fwrite (약 180MB)

  1. :

    사람들은 내 질문입니다. char 배열의 최대 크기는 얼마입니까? 어떻게이 문제를 해결할 수 있습니까?

  2. 이 프로그램

    이 같은 일을해야합니다

    • 비디오의 128 바이트를 읽기 -> 암호화 -> 128 바이트를
    • 읽은 다음 128 바이트 쓰기 -> 암호화 -> 다음에 쓰기.

나는 때문에 회사의 보안 규칙의 내 코드를 업로드 할 수 없습니다. 모든 팁 감사하겠습니다. 즉, 해당 메모리에 데이터를 malloc()으로 필요 메모리를 할당 한 후에 물품과 함께 SEEK_END

답변

1

fseek() 사용하고, 파일 크기를 결정하는 ftell()를 사용한다.

잘 이해하면 메모리를 많이 할당 할 필요는 없지만 128 바이트 만 할당하면됩니다.

char buf[128]; 
while(/* condition */) 
{ 
    ret = fread(buf, sizeof buf, 1, fp_in); 
    encrypt(buf); 
    ret = fwrite(buf, sizeof buf, 1, fp_out); 
} 
관련 문제