Next: CMPLX, Previous: CHDIR, Up: Intrinsic Procedures [Contents][Index]

### 8.48 `CHMOD` — Change access permissions of files

Description:

  `CHMOD` changes the permissions of a file.

  This intrinsic is provided in both subroutine and function forms; however, only one form can be used in any given program unit.

Standard:

  GNU extension

Class:

  Subroutine, function

Syntax:

  `CALL CHMOD(NAME, MODE[, STATUS])`
  `STATUS = CHMOD(NAME, MODE)`

Arguments:

  NAME | Scalar `CHARACTER` of default kind with the file name. Trailing blanks are ignored unless the character `achar(0)` is present, then all characters up to and excluding `achar(0)` are used as the file name.
  MODE | Scalar `CHARACTER` of default kind giving the file permission. MODE uses the same syntax as the `chmod` utility as defined by the POSIX standard. The argument shall either be a string of a nonnegative octal number or a symbolic mode.
  STATUS | (optional) scalar `INTEGER`, which is `0` on success and nonzero otherwise.

Return value:

  In either syntax, STATUS is set to `0` on success and nonzero otherwise.

Example:

  `CHMOD` as subroutine

      program chmod_test
        implicit none
        integer :: status
        call chmod('test.dat','u+x',status)
        print *, 'Status: ', status
      end program chmod_test

  `CHMOD` as function:

      program chmod_test
        implicit none
        integer :: status
        status = chmod('test.dat','u+x')
        print *, 'Status: ', status
      end program chmod_test