심볼릭 링크에 대한 파일 연산
심볼릭 링크에 대한 파일 연산
심볼릭 링크(symbolic link)를 다루는 파일 연산은 그 링크가 가리키는 대상과는 조금 다르게 동작할 때가 많아요. GNU Fortran이 심볼릭 링크에 대해 INQUIRE, OPEN, CLOSE 문을 어떻게 처리하는지 이 장에서 정리해 드릴게요.
출처: File operations on symbolic links (The GNU Fortran Compiler)
본문
이 장은 심볼릭 링크를 지원하는 시스템에서, GNU Fortran이 심볼릭 링크에 대한 파일 연산을 어떻게 다루는지 문서화해요.
-
'파일로 질의' 형식의
INQUIRE문 결과는 심볼릭 링크가 가리키는 대상(target)과 관련돼요. 예를 들어INQUIRE(FILE="foo",EXIST=ex)는foo가 존재하는 파일을 가리키는 심볼릭 링크면ex를.true.로, 존재하지 않는 파일을 가리키면('dangling' 심볼릭 링크).false.로 설정해요. -
심볼릭 링크에
STATUS="NEW"지정자를 쓴OPEN문을 사용하면, 링크가 존재하는 대상을 가리키든 dangling이든 에러 조건이 발생해요. -
심볼릭 링크가 연결된 상태에서
STATUS="DELETE"지정자를 쓴CLOSE문을 사용하면 그 대상이 아니라 심볼릭 링크 자체가 삭제돼요.
정리하면 GNU Fortran은 심볼릭 링크를 대상 파일과 똑같이 취급하되, 몇몇 파일 연산에서는 링크 자체를 구분해 다뤄요. INQUIRE는 실제로 그 링크가 유효한 대상으로 이어지는지(존재하는 파일인지)를 기준으로 판단하고, STATUS="NEW"로 열려는 시도는 링크를 새 파일로 만들 수 없으니 에러로 처리해요. 또 CLOSE의 STATUS="DELETE"는 링크가 가리키는 실체 파일을 지우는 게 아니라 링크만 정리해요.
이 동작들은 심볼릭 링크를 지원하는 시스템에서만 의미가 있어요. 심볼릭 링크가 없는 파일 시스템에서는 일반 파일과 같은 방식으로 처리돼요.
더 알아보기
- 비정형 순차 파일의 파일 형식 (File format of unformatted sequential files): GNU Fortran에서 파일이 디스크에 저장되는 방식이에요.
- GNU Fortran 컴파일러 특성 (Compiler Characteristics): 컴파일러가 파일·표현식을 처리하는 여러 동작 방식이 설명돼 있어요.