文書番号: 402079
最終更新日: 1999/08/19
この資料は以下の製品について記述したものです。
- Microsoft(R) Visual C++(TM) Development System Professional Editionfor Windows(TM) Version 1.0 (以下 Visual C++ Pro. 1.0)
- Microsoft(R) C/C++ Development System for MS-DOS(R) and Windows(TM)Version 7.0A (以下 C/C++ 7.0A)
- Microsoft(R) C Professional Development System Version 6.0
- Microsoft(R) QuickC(R) Compiler for MS-DOS(R) Version 2.0
この記事は、以前は次の ID で公開されていました: JP402079
概要
MS-DOS(R) 上のプログラムで 15 個以上のファイルを同時にオープンするサンプル
プログラムです。
サンプルをご覧になる前に
このサンプルプログラムは、関数の使用方法の一例として提示するものですが、
使用・修正・分割等については、自由に行っていただいてさしつかえありません。
しかし、このサンプルプログラムに関してのサポート・説明・修正依頼等は一切お
受けしかねますので、予めご了承ください。また、このサンプルプログラムは、
充分にデバッグされた信頼できるものではありませんので、プログラムの実行や
使用により発生したいかなる障害も、弊社では責任を負いません。
サンプルプログラムの説明
このプログラムは 50 個のファイルを同時にオープンします。予め CONFIG.SYS
の FILES の数が 55 以上になっていることを確認して下さい。
FILES=55
このプログラムは MS-DOS(R) Version 5.0 以上から正式にサポートされたファン
クションコールの 67H (ファイルハンドル数の設定)を使用しているため、
MS-DOS(R) Version 5.0 より前のバージョンでは保証の限りではありません。ま
た、このファンクションコールでファイルハンドル数を増やした場合、_dos_open、
_dos_creat、_dos_creatnew を使用してファイルを開きますので、プログラム中で
ファイル操作する場合は十分注意して下さい。
サンプルプログラム
#include <dos.h>
#include <errno.h>
#include <fcntl.h>
#include <share.h>
#include <stdio.h>
#define FILE_MAX 50
enum ATTRIB { NORMAL, RDONLY, HIDDEN, SYSTEM = 4 } ;
char fname[64] ;
int fhandle[FILE_MAX] ;
void main()
{
int i ;
unsigned val ;
/* ファイルハンドル数の設定 */
_asm {
mov bx,FILE_MAX
mov ax,6700H
int 21H
jc NOHANDLE /* 設定できない場合ラベル NOHANDLE へ飛ぶ */
}
/* ファイルを順次新規に作成 */
for ( i=0 ; i<FILE_MAX ; i++ )
{
sprintf ( fname, "TEMP%d", i ) ;
val = _dos_creat ( fname, NORMAL, &fhandle[i] ) ;
if ( val )
break ;
}
/* 新規に作成されたファイルをクローズする */
for ( i-- ; i>=0 ; i-- )
_dos_close ( fhandle[i] ) ;
return ;
/* エラー表示を行って終了 */
NOHANDLE:
printf ( "DOS Function error\n" ) ;
return ;
}
Keywords: KBHOWTO KB402079
Technology: kbAudDeveloper kbCCompPDS600DOS kbCCompSearch kbQC200 kbVCsearch kbZNotKeyword3 kbZNotKeyword8