2013-06-28 6 views
1

나는 확실히 wav 파일의 바이트 chunkSize + 8 것을, 내가 을하려고 봤는데 100 %되었습니다wav 파일의 바이트를 어떻게 찾을 수 있습니까?

fseek(file_pointer, chunkSize+8-4, SEEK_SET)

다음에

fread(rev, 4, 1, file_pointer)

를 사용 마지막 4 바이트를 배열 rev unsigned char rev[4]에 넣습니다. 그러나 그것이 rev에 넣는 바이트는 확실히 4 바이트가 아닙니다. 나는 많은 시간 동안이 프로젝트에서 일해 왔고 아직도 작동하지 않는 이유를 찾을 수 없습니다. 누군가 내가 정확한 답을 말할 수 있다면 지금 당장 그분의 상을 세울 것입니다. 당신이 파일의 마지막 4 바이트에 액세스하려면

+0

파일의 마지막 4 바이트를 원한다면 왜 'SEEK_END'을 사용하지 않습니까? –

+0

실제 문제는 wav 파일을 되 돌리는 것입니다. 그래서 내가 마지막 4시를 읽었을 때 나는 fseek로 다음 4 점 (시작하는 방향)을 가리킬 것입니다. 나는 그것들을 읽을 것입니다. 그러면 다음 4 장. 멈출 때를 알 필요가 있습니다. thats why –

+0

이 파일의 크기는 얼마입니까? 왜 모든 것을 메모리에 읽어 들여 역순으로 쓰고 다시 쓰는 것이 좋을까요? –

답변

1

, 당신과 같이, SEEK_END를 사용할 수 있습니다

fseek(file_pointer, -4, SEEK_END); 

fread 다음 마지막 4 바이트를 반환해야합니다.

+0

내가 언제 멈출 지 알 수 없기 때문에. 왜냐하면이 4 바이트를 취한 후에 나는 다음 4 바이트와 다음을 원하기 때문입니다 ... 내가 헤더에 도달 할 때까지 (begening에서 44 바이트는 헤더의 끝입니다) 내가 멈출 곳이 –

+0

나는 이해하지 못합니다 - wav 파일의 마지막 4 바이트를 읽으려고합니까? wav 파일이 다른 파일에 포함되어 있습니까? –

+0

실제 질문은 fseek (file_pointer, chunkSize + 8-4, SEEK_SET)가 작동하지 않는 이유입니다. wav 파일을 뒤집을 수 있습니다. 왜 내가이 문제가 해결되지 않으면 해결할 수 있습니다. –

관련 문제