일반 C 용으로 널리 사용되는 I/O 스트림 추상화 레이어가 있습니까? I 적어도 맞춤 읽기/쓰기 기능의 생성을 가능하게하는 모든 층을 의미하는 I/O 스트림을 추상화 계층일반 C 용 입력/출력 스트림 추상화 레이어
. C++의 경우 표준 iostream과 boost :: iostreams가 있습니다. glibc 사용자의 경우 사용자 정의 스트림을 사용할 수 있습니다. 이 코드는 이식 가능한 C 코드를 작성하는 것이면 아무런 도움이되지 않습니다.
그것은 소스 코드, 또는 둘 다 포함 할 널리 사용 또는 쉬운 중 하나 인 라이브러리를 사용하는 것이 좋습니다.
SDL_RWops는 SDL의 문서화되지 않은 있지만, 널리 사용되는 기능이며, zziplib는 사용할 수 있습니다. 그러나이 기능을 사용하기 위해 SDL에 종속성을 추가하는 것은별로 의미가 없습니다.
은 입심은 GIOChannel 추상화 포함되어 있지만 라이브러리가 다시 매우 크고, 그들은 "윈도우에 대한 지원이 부분적으로 만 완료"고 말한다.
그러나 디코더, 파일 형식 판독기 및 신호 프로세서와 같은 작은 라이브러리에는 위의 내용이 만족스럽지 않습니다. 불필요한 내용이 많이 포함되어 있으며 LGPL 라이센스는 관련 부분을 비 GPL 코드에 포함하지 못하게합니다.
은 현재 내가 파일 형식 리더 라이브러리를 쓰고 있어요 그 가능한 한 재사용 가능하고 다재다능해야합니다. 예를 들어, 사용자가 메모리, 네트워크, 아카이브 등에서 파일로드를 지원하기 위해 사용자 정의 입력 스트림을 작성하려고 할 수 있습니다. 필자는 자신 만의 작은 SDL_RWops를 작성하는 것을 싫어합니다. zlib이나 libpng가 사용자 자신의 fread와 메모리 할당 함수를 지정하기위한 인터페이스를 제공하지 않는다면, 사람들은 더 적은 것을 사용하게 될 것입니다. 나는 자기 자신을 쓰려고하거나 iostreams를 사용하는 C++로 라이브러리를 만들고 C 인터페이스를 제공 할 것이라고 생각한다. – ahnurmi
비록 동의하지 않지만 때때로 더 많은 추상화가 필요합니다. 오늘날에는 "널리 사용되는 스트림 추상화 라이브러리가 없습니다"라는 정답이 있습니다. – ahnurmi