# マニュアルページ getfilep.3f

## 名前

         getfilep - 外部ユニット番号に対するファイルポインタの取得

## 機能説明

         getfilep は、外部ユニットが接続されている場合に、そのユ ニッ
         ト番号のファイルポインタを戻します。
         そのユニットが接続されていない場合には、値 -1 が戻されます。

## 注意事項

         この関数は、標準の FORTRAN 入出力と C の入出力を混在させるた
         めに使用します。ただし、このように混在使用する方法は、移植性
         が損なわれ、かつオペレーティングシステムや  FORTRAN  が バー
         ジョンアップされたときの動作も保証されません。したがって、こ
         の関数の使用はあまりお勧めできませんし、直接のインタフェース
         も 提 供されていません。 getfilep から戻される値を使用するに
         は、専用のルーチンを C 言語で作成しなければなりま せ ん。 次
         に、このような C ルーチンの例を示します。

## 使用法

         以下は、 getfilep が含まれる FORTRAN メインプログラムの一 例
         で、 MixStdinmain.f という名前のファイルに含まれています。

               character*1  inbyte
               integer*4    c_read,  getfilep, unitn / 5 /
               external     getfilep
               write(*,'(a,$)') 'What is the digit? '

               irtn = c_read ( getfilep ( unitn ), inbyte, 1 )

               write(*,9)  inbyte
             9 format('The digit read by C is ', a )
               end

         次は、 getfilep を実際に使用する C 関数の一例で、 MixStdin.c
         という名前のファイルに含まれています。

         #include <stdio.h>
         int c_read_ ( fd, buf, nbytes, buf_len )
         FILE **fd ;
         char *buf ;
         int *nbytes, buf_len ;
         {
            return fread ( buf, 1, *nbytes, *fd ) ;
         }

         コンパイル、構築、実行の例:

         demo% cc -c MixStdin.c
         demo% f77 MixStdin.o MixStdinmain.f
         MixStdinmain.f:
         MAIN:
         demo%
         a.out
         What is the digit?  3

         詳細については、『Fortran ユーザーズガイド』の「C と FORTRAN
         のインタフェース」の章を参照してください。

## ファイル

         libfui.a

## 関連項目

         open(2)