프로젝트의 경우, 일부 오래된 게임 및 관련 소프트웨어 (구성 파일, 저장, 리소스 아카이브 등)의 다양한 유형의 파일로 작업해야합니다. 이것들 대부분은 아직 문서화되지 않았고 그것들과 함께 작동하는 툴도 존재하지 않기 때문에 형식을 리버스 엔지니어링하고 그것들을 처리하기 위해 자체 라이브러리를 빌드해야합니다.
나는 그것의 대부분에 대한 수요가 크다고 생각하지는 않지만, 노력의 결과를 출판하려고합니다. 파일 형식 문서화에 허용되는 표준이 있습니까? 주위를 둘러 보면 몇 가지 스타일이 사용됩니다. .ZIP 파일 형식 사양 과 같은 일부 는 매우 장황합니다. XentaxWiki와 같은 다른 것들은 훨씬 더 간결합니다. 그들 중 일부는 읽기가 어렵습니다. 제가 개인적으로 가장 좋아 하는 것은 PlayStation 2 메모리 카드 파일 시스템 에 대한 설명입니다. 여기에는 자세한 설명 텍스트와 오프셋이있는 여러 '메모리 맵'이 포함되어 있습니다. 사용 사례와 가장 일치합니다. 형식에 따라 조금씩 다를 수 있지만 따라야 할 일반적인 원칙이 있어야합니다.
편집 : 내가하고 싶은 일을 잘 설명하지 않은 것 같습니다. 예를 만들어 봅시다.
구식 소프트웨어를 '이진'파일에 저장하는 일련의 비트 필드, 정수, 문자열 및 프로그램이 서로 붙어 있지만 이해하기는 쉽지만 사람이 읽을 수는 없습니다. 나는 이것을 해독합니다. 이 파일의 형식이 무엇인지를 사람이 읽을 수있는 방식으로 정확하게 문서화하여이 파일을 구문 분석하고 수정하는 라이브러리를 구현하기위한 사양으로 문서화하고 싶습니다. 또한 다른 사람들이 쉽게 이해할 수 있기를 바랍니다.
그러한 문서를 작성하는 방법에는 여러 가지가 있습니다. 위의 PKZIP 예제는 매우 장황하며 대부분 자유 텍스트로 파일 형식을 설명합니다. PS2 예제는 값 유형, 오프셋 및 크기 테이블과 그 의미에 대한 광범위한 설명을 제공합니다. XentaxWiki의 것들과 같은 많은 다른 것들은 주석이 거의 없거나 전혀없는 변수 유형과 크기만을 나열합니다.
이런 종류의 문서를 작성하는 방법에 대한 지침을 제공하는 코딩 스타일 가이드와 유사한 표준이 있는지 묻습니다. 그렇지 않은 경우 잘 모방해야 할 잘 알려진 훌륭한 예가 있습니까? 그렇지 않다면 누구나 유용한 조언을 적어도 요약 할 수 있습니까?
struct
. 꽤 잘 작동했습니다.