マニュアルページ 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)