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)
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)