Oracle Solaris Studio 12.4 Man Pages

Exit Print View

Updated: January 2015
 
 

getfilep(3F)

Name

getfilep - get the file pointer of an external unit number

Description

getfilep returns the file pointer of an external unit number if the unit is connected. If the unit is not connected, the value returned is -1.

NOTE

This function is used for mixing standard FORTRAN I/O with C I/O. Such mixing in nonportable, and is not guaranteed for subsequent releases of the operating system or FORTRAN. Use of this function is not recommended, and no direct interface is provided. You must enter your own C routine to use the value returned by getfilep. A sample C routine is shown below.

Usage

Following is a sample FORTRAN main program with getfilep, the file 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

Following is a sample C function that actually uses getfilep, the file 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 ) ;
}

A sample compile/build/run:

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

See the chapter on the C-FORTRAN interface in the FORTRAN 77 User's Guide.

Files

libfui.a

See also

open(2)

FORTRAN 77 User's Guide