WIPIVERSE

/dev/full

개요
/dev/full은 Unix 계열 운영체제에서 제공되는 특수 파일(가상 디바이스)이다. 이 파일에 데이터를 쓰면 항상 “디스크 공간이 부족함”(ENOSPC) 오류가 발생하고, 읽기를 시도하면 즉시 파일 끝(EOF)을 반환한다. 주로 파일 시스템의 용량 부족 상황을 테스트하거나, 프로그램이 오류 처리 로직을 올바르게 구현했는지 확인하는 용도로 활용된다.

주요 특징

구분 동작
쓰기 write() 호출 시 항상 ENOSPC(No space left on device) 오류를 반환한다. 실제 데이터는 저장되지 않는다.
읽기 read() 호출 시 즉시 0 바이트를 반환한다(EOF).
파일 타입 문자 특수 디바이스 파일(c 타입)이며, mknod 명령어를 통해 직접 생성할 수 있다.
표준 위치 대부분의 Linux 배포판에서 /dev/full 경로에 존재한다. macOS와 일부 BSD 계열에서는 기본적으로 제공되지 않을 수 있다.
동작 구현 Linux 커널의 null.c 소스 파일에 포함된 full_device 구조체에서 구현된다.

사용 예시 (Linux)

$ echo "test" > /dev/full
bash: /dev/full: No space left on device

$ cat /dev/full
$ echo $?
0   # 읽기 시도는 즉시 EOF이므로 종료 상태는 0

관련 파일 및 디바이스

  • /dev/null: 쓰기는 데이터를 버리지만, 읽기는 즉시 EOF를 반환한다. /dev/full은 /dev/null과 달리 쓰기 시 오류를 일으킨다.
  • /dev/zero: 무한히 0 바이트를 제공하는 가상 디바이스이며, 쓰기 시 실제 데이터를 저장한다.

지원 환경

  • Linux: 커널 2.6.27 이후 기본 제공.
  • macOS / BSD: 기본 제공되지 않으며, 직접 커널 모듈을 작성하거나 유사한 기능을 구현해야 한다.

참고 문서

  • Linux Manual Pages: man 4 full
  • Linux Kernel Source (drivers/char/null.c)

비고
/dev/full은 표준 POSIX 사양에 정의된 장치가 아니며, Linux 특유의 구현이다. 따라서 이 파일을 사용하는 스크립트나 프로그램은 해당 환경에서만 정상 동작한다.

둘러보기

더 찾아볼 만한 주제

    전체 문서 보기