pxfisblk

Date:

10-20-2011

NAME

PXFISBLK - Tests for block special file

SYNOPSIS

LOGICAL FUNCTION PXFISBLK(m)
INTEGER m
IF (m) then

STANDARDS

IEEE Std 1003.9-1992 standard interface for FORTRAN 77

DESCRIPTION

The logical function PXFISBLK checks if a file is a block special file. The argument m should be supplied by the st_mode component of the stat structure used by the PXFSTAT(3F) routine.

All arguments must be of default kind unless documented otherwise. Default kind is KIND=4 for integer, real, complex, and logical arguments.

The following argument is valid for this routine:

m

An integer input variable containing the file mode.

If the file is a block special file, PXFISBLK returns a logical true, otherwise a logical false is returned.

EXAMPLES

In this example, the /dev/dsk directory is read until a block special file is found or the end of the directory is reached. If a block special file is found, the file is printed.

program pxftest
integer ierror,mode,ilen,EEND
integer idirid,jdirent,jstat
logical PXFISBLK, found
character*30 name, path

CALL PXFSTRUCTCREATE('dirent',jdirent,ierror)
CALL PXFSTRUCTCREATE('stat',jstat,ierror)
CALL PXFCONST('EEND',EEND,ierror)
path = '/dev/dsk'
found = .FALSE.
CALL PXFOPENDIR(path,0,idirid,ierror)
CALL PXFCHDIR(path,0,ierror)
do while (found .eqv. .FALSE.)
   CALL PXFREADDIR(idirid,jdirent,ierror)
   if (ierror .eq. EEND) then
      exit
   endif
   CALL PXFSTRGET(jdirent,'d_name',name,ilen,ierror)
   CALL PXFSTAT(name,0,jstat,ierror)
   CALL PXFINTGET(jstat,'st_mode',mode,ierror)
   if (PXFISBLK(mode)) then
      found = .TRUE.
   endif
enddo

if (found .eqv. .TRUE.) then
print *,name,' is a block file.'
endif
end

SEE ALSO

PXFCONST(3F), PXFINTSET(3F), PXFSTRUCTCREATE(3F)