XML과 동영상 데이터를 합쳐서 새로운 파일로..?
글쓴이: senah / 작성시간: 일, 2008/09/21 - 7:00오전
안녕하세요.
문제 상황은 이렇습니다. 먼저, XML 데이터가 있고, 여기에 맞는 동영상 데이터가 있는데.. 이 둘을 합쳐서 새로운 파일로 하고 싶습니다. 그런데, 이미 만들어둔 함수들은 해당 파일들을 로드할 때 파일 이름이 필요합니다.
Tmp 디렉토리 같은 곳에 파일을 생성하지 않고 하나로 합쳐진 파일에서 읽어들일 수 있는 방법은 없을까요? 또, 파일을 하나로 합치려면 어떻게 해야하는지.. XML 데이터를 읽어들여서 크기를 알아내고, 새로운 파일의 헤더 따위에서 XML 데이터가 어디까지 가는지 크기를 정의하고, XML 데이터를 쓴 다음 동영상 데이터를 다음부터 저장해야 하나요?
Forums:
그냥 압축하시지요?
.jar도 .odf도 내부는 zip 압축이라서 그냥 풀어보면 풀리지요. rpm도 cpio라는 걸로 그냥 풀어버릴 수 있고.
굳이 새로 형식을 만드시는 것보다는 (동영상이니까 압축률 없이) tar 식으로 묶는 정도면 괜찮지 않을까 합니다.
다시 설명하겠습니다
음, 제가 자세히 설명하지 않았네요.
제가 만든 프로그램에서 XML 문서와 동영상 데이터를 필요로 합니다. 이때까지는 XML과 동영상 데이터를 따로 따로 읽어들여서 데이터를 출력했지만, 지금은 파일 하나로 처리하도록 요구 사항이 바뀌었습니다. 바깥에서 알아보기 힘들도록 말이죠. (후..) 그리고, 프로그램 내부의 코드들은 이미 입력 인자로 각각의 파일 이름을 요구하는데.. Tmp와 같은 디렉토리에 프로그램 수행 도중에 파일을 따로 만들지 않고 합친 파일에서 읽어들일 수 있는 방법이 있나요?
파일 읽는 건 단계를 하나 더 만들어야겠네요.
파일 이름은 그냥 예전과 같이 주되 그 파일 안에서 동영상 읽는 함수는 동영상 부분 읽고, XML 읽는 함수는 XML 부분 읽도록 해야 되지 않을까요?
근데 외부에서 알아볼 수 없는 형식이라면 .... 그냥 zip으로 하고 헤더만 zip 말고 jib 식으로; 바꾸면 어떨까요?
굳이 어렵게 하지 마시고.
파일 헤더에 원하시는 정보를 기록해 두시고,
헤더 정보를 활용해서 XML부분과 동영상 부분을 분리하시면 될것 같네요.
파일 합치는 방법이야 뭐 별거 있습니까?
그냥 바이너리로 읽어서 하나로 써버리면 됩니다.
나중에 헤더 참조해서 두개로 다시 나누면 되고요.
가장 편해보이기는 하는데..
문제는 Tmp 디렉토리 같은 곳에 프로그램 실행 도중에 확인할 수 있는 파일들이 생성된다는 것인데.. 으음..
다른 방법이 없다면 어쩔 수 없이 이렇게 해야겠군요. 쩝.
fopen() 또는 open() 을
fopen() 또는 open() 을 후킹해서 seek 계열 함수로 offset 조정을 해버리는 겁니다.
xml 을 읽으려는 건지 영상데이터를 읽으려는 건지의 판단은 적절히 하셔야겠지요.
OTL
댓글 달기