2011-08-04 4 views
0

하나의 avi demuxer 라이브러리를 작성하십시오. 여러 기능을 수행하기 위해 여러 API를 내보냈습니다. 지금 avifen()이 i/p 파일명으로 호출되면, 전체 파일을 구문 분석합니다. & 일부 구조에 malloc을 저장합니다. 이제 해당 API에 대한 API가 호출되면 해당 구조체 정보 &을 사용해야합니다.내 라이브러리에서 여러 i/p 파일 지원을 처리하는 방법은 무엇입니까?

나는 이러한 구조를 라이브러리 사용자에게 공개하고 싶지 않습니다. 심지어 나는 그에게 그 구조의 포인터를주고 싶지 않습니다. 이 경우 어떻게 그 구조를 추적 할 수 있습니까 ???

또한 내 라이브러리에서 여러 파일 지원을 제공하므로 모든 응용 프로그램이 한 번에 둘 이상의 파일을 열려고하는 경우이를 수행 할 수 있습니다.

여기 어떻게 할당 된 구조에 대해 열린 파일 각각의 핸들을 유지 관리 할 수 ​​있습니까?

답변

1

opaque pointer이이를 구현하는 일반적인 방법입니다.

어떤 이유에서든 포인터를 전달하지 않으려면 구조의 전역 ("개인") 배열/해시를 유지하고 사용자에게 전역 컨테이너의 인덱스를 제공 할 수 있습니다 일반 int). 그것은 불투명 한 포인터를 전달하는 것보다 훨씬 더 많은 작업 (그리고 많은 오류 발생 가능성이 있고 잠재적으로 불쾌 함)입니다.

관련 문제