本ページは公開が終了した情報の複製であり、掲載時点での情報です。本ページに記載されている内容について各所に問い合わせることはご遠慮下さい。
サポート技術情報

[MSC]同時にオープンできるファイル数を20以上にしたい

文書番号: 402079

最終更新日: 1999/08/19


この資料は以下の製品について記述したものです。


この記事は、以前は次の 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 ;
  }

詳細

  • この資料のサンプル コードの機能強化、改良、保守に関するお問い合わせには一切 お答えできません。
  • QuickC は米国 Microsoft Corporation の登録商標です。
  • Visual C++ は米国 Microsoft Corporation の商標です。

Keywords: KBHOWTO KB402079
Technology: kbAudDeveloper kbCCompPDS600DOS kbCCompSearch kbQC200 kbVCsearch kbZNotKeyword3 kbZNotKeyword8

inserted by FC2 system