pxfchmod
- Date:
10-20-2011
NAME
PXFCHMOD - Sets file modes for a named file
SYNOPSIS
CHARACTER*n path
INTEGER ilen, imode, ierror
CALL PXFCHMOD(path, ilen, imode, ierror)
IMPLEMENTATION
Cray Linux Environment (CLE)
STANDARDS
IEEE standard interface for FORTRAN 77
DESCRIPTION
The PXFCHMOD subroutine uses the chmod(2) function to set file modes for the named file.
The value of imode indicates specific file modes. chmod() changes the current file modes for the named file in path to the file mode specified in imode.
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
Input character variable or array element containing the name of a file.
- ilen
Input integer variable containing the length of path in characters. If ilen is zero, all trailing blanks are removed before calling chmod().
- imode
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.
- ierror
Output integer variable that contains zero if the requested file mode bits are set or nonzero if the requested file mode bits are not set.
In addition to the errors returned by the chmod system call, PXFCHMOD may return the following errors:
- EINVAL
If ilen < 0 or ilen > LEN(path).
- ENOMEM
If PXFCHMOD is unable to obtain memory to copy path.
EXAMPLES
program test
character*(12) path
integer ilen, imod, ierr, imodr, imodw
path = 'testfile'
imod = 0
imodr = 0
imodw = 0
ilen = 0
call pxfconst('S_IRUSR',imodr,ierr)
if (ierr.ne.0) then
print *,'FAIL: error from pxfconst S_IRUSR = ',ierr
stop
endif
call pxfconst('S_IROTH',imodw,ierr)
if (ierr.ne.0) then
print *,'FAIL: error from pxfconst S_IWUSR = ',ierr
stop
endif
imod = IOR(imodr,imodw)
call pxfchmod(path,ilen,imod,ierr)
if (ierr.ne.0) then
print *,'FAIL: error from pxfchmod = ',ierr
else
print *,'PASS: No error from pxfchmod'
endif
end
SEE ALSO
chmod(2)