pxfcreat

Date:

10-20-2011

NAME

PXFCREAT - Creates a new file or rewrites an existing file

SYNOPSIS

CHARACTER*n path
INTEGER ilen, imode, ifildes, ierror
CALL PXFCREAT(path, ilen, imode, ifildes, ierror)

IMPLEMENTATION

Cray Linux Environment (CLE)

STANDARDS

IEEE standard interface for FORTRAN 77

DESCRIPTION

The PXFCREAT subroutine uses the creat(2) system call to create a new file or rewrite an existing file. The call is similar to PXFOPEN with an iopenflag argument of O_WRONLY, O_CREAT, and O_TRUNC.

The value of imode indicates specific file modes. If the file exists, imode is ignored. The mode values are used when path is a new file.

When using the Cray Fortran compiler, all arguments must be of default kind unless documented otherwise. The default kind is KIND=4 for integer, real, complex, and logical arguments;

The following is a list of valid arguments for this subroutine:

path

An input character variable or array element containing the name of a file.

ilen

An input integer variable containing the length of path in characters. If ilen is zero, all trailing blanks are removed before calling creat().

imode

An input integer variable containing the integer value of the symbolic constant for one or more of the following file modes:

USER

READ permissions bit: S_IRUSR WRITE permissions bit: S_IWUSR SEARCH/EXECUTE permissions bit: S_IXUSR Inclusive OR of READ/WRITE/EXECUTE: S_IRWXU

GROUP

READ permissions bit: S_IRGRP WRITE permissions bit: S_IWGRP SEARCH/EXECUTE permissions bit: S_IXGRP Inclusive OR of READ/WRITE/EXECUTE: S_IRWXG

OTHER

READ permissions bit: S_IROTH WRITE permissions bit: S_IWOTH SEARCH/EXECUTE permissions bit: S_IXOTH Inclusive OR of READ/WRITE/EXECUTE: S_IRWXO

SETID

Set user ID on execution: S_ISUID Set group ID on execution: S_ISGID

  • An integer value for each of these symbolic constants is retrieved through the use of PXFCONST or IPXFCONST. The integer values may be combined through the use of a bitwise inclusive OR function.

ifildes

An output integer variable containing the file descriptor returned by creat().

ierror

An output integer variable that contains zero if the file is created or rewritten or nonzero if PXFCREAT is not successful.

In addition to the errors returned by the creat(2) system call, PXFCREAT may return the following errors:

EINVAL

If ilen < 0 or ilen > LEN(path)

ENOMEM

If PXFCREAT is unable to obtain memory to copy path

EXAMPLES

program test
character*(12) path
integer ilen, imod, ifilde, ierr
integer imodru, imodwu, imodwg, imodrg
integer ierr1, ierr2, ierr3, ierr4
path = 'testfile'
imod = 0
ilen = 0
call pxfconst('S_IRUSR',imodru,ierr1)
call pxfconst('S_IWUSR',imodwu,ierr2)
call pxfconst('S_IRGRP',imodrg,ierr3)
call pxfconst('S_IWGRP',imodwg,ierr4)
imod = IOR((IOR(imodru,imodwu)),(IOR(imodrg,imodwg)))
call pxfcreat(path,ilen,imod,ifilde,ierr)
if (ierr.ne.0) then
   print *,'FAIL: error from pxfcreat = ',ierr
else
   print *,'PASS: No error from pxfcreat = '
endif
end

SEE ALSO

creat(2), PXFCONST(3F)