CLOSE(2)

이름
close - 파일 기술자를 닫는다.

사용법
#include <unistd.h>

int close(int fd);

설명
close 는 파일 기술자를 닫으며, 그래서 더이상 어떤 파일에 의해 참조되지 않으며 다시 사용될수 있다. 프로세스와 관련되고 프로세스 소유의 파일에 잡혀져 있는 어떤 잠금들은 제거된다(잠금을 포함하여 사용된 파일 기술자와 관계없이).

만일 fd 가 특별한 파일 기술자의 마지막 복사본이라면 그것과 관련된 자원들은 해제된다; 만일 파일 기술자가 unlink(2)를 사용하여 제거된 파일에 대한 마지막 참조라면 이 파일은 제거된다.

반환값
close 는 성공시 0을 반환하며, 에러시 -1을 반환한다.

에러

EBADF
    fd 가 열려진 유효한 파일 기술자가 아니다.

호환
SVr4, SVID, POSIX, X/OPEN, BSD 4.3. SVr4는 추가적으로 ENOLINK 에러 조건을 문서화 하였다.

주의
보통은 close의 반환값을 체크하지 않지만, 이것은 심각한 프로그래밍 에러이다. 성능을 증가시키기 위해 ``write-behind''와 같은 기술들을 사용하는 파일 시스템 수행들은 비록 데이터가 아직 쓰여지지 않았음에도 불구하고 성공적으로 write(2)를 이끈다. 에러 상태들은 쓰기 작동후에 보고 되지만, 그것들은 파일을 닫을때 보고 되는걸 보장한다. 파일을 닫을때 반환값을 체크하지 않는 것은 데이터 손실을 묵인하는 것이다. 이것은 특히 NFS와 디스크 쿼터에서 관찰된다.

관련 항목
open(2), fcntl(2), shutdown(2), unlink(2), fclose(3)

역자
정강훈 <skyeyes@soback.kornet.net>, 2000년 7월 2일