2013-10-21 4 views
0

우리는순수 DOS 모드의 WriteFile?

내가 순수한 도스 이러한 목적을 위해에서 이러한 API가 있는지 알고 싶어 (WriteFile 참조) VC의 WriteFile()가 OS에 지정된 I/O 장치에 데이터를 기록 아시다시피? (Watcom C ... 사용)

그런 다음 와콤 C 라이브러리 참조 페이지 197 (_dos_write() 참조)에서 _dos_write()을 찾았으며 시스템 호출 0x40을 사용하여 버퍼가 가리키는 버퍼에서 지정된 파일로 데이터의 수를 씁니다 같은 (이상 65536 바이트를 전송할 수있는 다른 API가 "한 번"WriteFile() : 핸들

65535

내 질문입니다 unsigned 유형이며이 최대 파일 개수가된다는 뜻입니다 않습니다) 순수 DOS?

p.s. 그것은 Windows에서 명령 프롬프트에 관한 것이 아닙니다!

+4

"순수 도스"는 플로피 디스크를 띄워서 MS-DOS를 부팅하는 것을 의미합니다. Pure DOS가 아니라 에뮬레이션 레이어가 있습니다. WriteFile은 Visual C에 속하지 않습니다. Visual C가 사용되는지 여부에 상관없이 Windows 자체에 대한 인터페이스입니다. MS-DOS에는 WriteFile이 없습니다. 당신이 가진 것은 INT 21H의 DOS 기능인 AH = 0x40 기능입니다. DOS는 16 비트 레지스터가있는 16 비트 아키텍처 용 시스템이므로 16 비트 기반의 제한이 있습니다. 65536 크기의 쓰기는 DOS의 절정기에 커졌습니다. – Kaz

+0

바로 지금, [Ralf Brown 's Interrupt List] (http://www.cs.cmu.edu/~ralf/files.html) 사본을 얻으려고합니다. 하지만 적어도 메모리가 작동한다면 64K 이상을 쓰고 64K 이하로 여러 번 호출해야합니다. –

+0

의견을 보내 주셔서 감사합니다! – liaoo

답변

1

65535 바이트는 한 번의 호출로 한 번에 읽고 쓸 수있는 바이트 수의 한도에 불과합니다. 파일이 닫히지 않으면 램의 다른 위치로 다시 쓰기/읽기를 다시 호출하면 파일 카운터가 파일의 다음 65535 바이트로 이동합니다. Jerry Coffin이 말했듯이 파일 핸들을 사용하여 파일을 닫기 전에 다중 호출을 사용해야합니다.

더크