ACCESS — 파일 접근 모드 확인

ACCESS — 파일 접근 모드 확인

파일이 정말 존재하는지, 읽거나 쓰거나 실행할 수 있는 상태인지를 프로그램 안에서 미리 확인하고 싶을 때가 있어요. 그럴 때 ACCESS를 쓰면 됩니다. 단순히 파일 존재 여부만이 아니라 권한까지 한 번에 물어볼 수 있는 함수예요.

출처: gfortran 공식 문서 - ACCESS

본문

시그니처(Synopsis)

RESULT = ACCESS(NAME, MODE)

설명(Description)

ACCESS(NAME, MODE)는 파일 NAME이 존재하는지, 읽기·쓰기·실행이 가능한지를 확인해요. 실행 가능 여부를 제외하면 ACCESS는 Fortran 95의 INQUIRE로 대체할 수 있습니다.

분류(Class)

조사 함수(Inquiry function)

인자(Arguments)

  • NAME: 기본 종류(default kind)의 스칼라 CHARACTER로, 파일 이름을 담아요. 뒤쪽 공백은 무시되는데, achar(0) 값이 있으면 그 앞의 모든 문자를 파일 이름으로 사용합니다.
  • MODE: 기본 종류의 스칼라 CHARACTER로, 파일 접근 모드를 담아요. "r"(읽기), "w"(쓰기), "x"(실행)를 조합해서 쓸 수 있고, 존재 여부만 확인할 땐 " "(공백)을 줍니다.

반환값

스칼라 INTEGER를 반환해요. 주어진 모드로 파일에 접근할 수 있으면 0, 그렇지 않거나 MODE에 잘못된 인자가 들어오면 1을 반환합니다.

예제

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

file에 대해 존재·읽기·쓰기·실행을 각각 확인하고, achar(0)으로 끝나는 file2로는 접근 모드 조합(rwx)까지 확인하는 예시예요.

표준(Standard)

GNU 확장(GNU extension)