pxfchmod(3F)

PXFCHMOD - Sets file modes for a named file

Showing IRIX 6.5.30 (default release). Last changed in IRIX 6.5.19.

NAME
     PXFCHMOD - Sets file modes for a named file

SYNOPSIS
     CHARACTER*n path
     INTEGER ilen, imode, ierror
     CALL PXFCHMOD(path, ilen, imode, ierror)

STANDARDS
     IEEE standard interface for FORTRAN 77

DESCRIPTION
     This routine is in libfortran.so which is linked by default when
     compiling programs with the MIPSpro 7 Fortran 90 compiler or when
     compiling programs with the -craylibs option to the MIPSpro F77
     compiler.

     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.

     All arguments must be of default kind unless documented otherwise.  On
     IRIX systems, the default kind is KIND=4.

     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(3F) or IPXFCONST(3F).  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(2) 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.

NOTES
     The PXF_DEFINITIONS module can be used by Fortran 90 users to enable
     caller-callee interface checking.

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)