ACCESS (The GNU Fortran Compiler)

### 8.4 `ACCESS` — Checks file access modes ¶

Synopsis:

  `RESULT = ACCESS(NAME, MODE)`

Description:

  `ACCESS(NAME, MODE)` checks whether the file NAME exists, is readable, writable or executable. Except for the executable check, `ACCESS` can be replaced by Fortran 95’s `INQUIRE`.

Class:

  Inquiry function

Arguments:

  NAME | Scalar `CHARACTER` of default kind with the file name. Trailing blank are ignored unless the character `achar(0)` is present, then all characters up to and excluding `achar(0)` are used as file name.
  MODE | Scalar `CHARACTER` of default kind with the file access mode, may be any concatenation of `"r"` (readable), `"w"` (writable) and `"x"` (executable), or `" "` to check for existence.

Return value:

  Returns a scalar `INTEGER`, which is `0` if the file is accessible in the given mode; otherwise or if an invalid argument has been given for `MODE` the value `1` is returned.

Example:

      program access_test
        implicit none
        character(len=*), parameter :: file  = 'test.dat'
        character(len=*), parameter :: file2 = 'test.dat  '//achar(0)
        if(access(file,' ') == 0) print *, trim(file),' is exists'
        if(access(file,'r') == 0) print *, trim(file),' is readable'
        if(access(file,'w') == 0) print *, trim(file),' is writable'
        if(access(file,'x') == 0) print *, trim(file),' is executable'
        if(access(file2,'rwx') == 0) &
          print *, trim(file2),' is readable, writable and executable'
      end program access_test

Standard:

  GNU extension