ACTION= 없이 열린 파일

ACTION= 없이 열린 파일

OPEN 문에서 ACTION=을 지정하지 않으면 파일을 읽기 전용으로 열지, 쓰기 전용으로 열지 애매해져요. 이때 어떤 기본값이 적용되는지는 표준에서 구현에 맡기고 있어서, 컴파일러마다 다를 수 있습니다. GNU Fortran이 어떻게 처리하는지 알아볼게요.

출처: gfortran 공식 문서 - Files opened without an explicit ACTION= specifier

본문

Fortran 표준은 OPEN 문이 명시적인 ACTION= 지정자 없이 실행되면 기본값이 프로세서(구현)에 따라 달라진다고 말해요. GNU Fortran은 다음과 같이 동작합니다.

  1. ACTION='READWRITE'로 파일 열기를 시도해요.
  2. 그게 실패하면 ACTION='READ'로 열기를 시도해요.
  3. 그게 실패하면 ACTION='WRITE'로 열기를 시도해요.
  4. 그것마저 실패하면 오류를 발생시켜요.

즉, 가능하면 읽기/쓰기 겸용으로 열려고 하다가, 안 되면 읽기 전용, 그다음 쓰기 전용 순으로 차근차근 시도하는 방식이에요. 네 단계까지 모두 실패하면 오류가 나므로, ACTION=을 생략할 때는 그 파일에 대한 접근 권한을 미리 생각해 두는 게 좋아요.