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)