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