Oracle Solaris Studio 12.4 Man Pages

Exit Print View

Updated: January 2015
 
 

getfilep(3F)

Name

getfilep - 获取外部单元编号的文件指针

Description

如果外部单元已连接,则 getfilep 返回外部单元编号的文件指针。如果该单元未连接,则返回的值为 -1。

注意

注意

此函数用于将标准 FORTRAN I/O 与 C I/O 混合使用。这样的混合是不可移植的,并且不担保可以在操作系统或 FORTRAN 的后续发行版中使用。建议不要使用此函数,并且未提供直接接口。要使用 getfilep 返回的值,必须输入您自己的 C 例程。下面显示了一个 C 例程样例。

Usage

下面是一个采用 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
The digit read by C is 3

请参见《FORTRAN 77 User's Guide》中有关 C-FORTRAN 接口的章节。

Files

libfui.a

See also

open(2)

《FORTRAN 77 User's Guide》