NAME

makedev, major, minor - 장치 번호 관리하기

SYNOPSIS

#include <sys/sysmacros.h>

dev_t makedev(unsigned int maj, unsigned int min);

unsigned int major(dev_t dev);
unsigned int minor(dev_t dev);

DESCRIPTION

장치 ID는 두 부분으로 되어 있다. 주(major) ID는 장치의 유형을 나타내고 부(minor) ID는 그 유형 내에서 개별 장치 인스턴스를 나타낸다. dev_t 타입으로 장치 ID를 표현한다.

주 장치 ID와 부 장치 ID를 주면 makedev()가 이를 합쳐서 장치 ID를 만들어 함수 결과로 반환한다. 그 장치 ID를 예를 들어 mknod(2)에 줄 수 있다.

major()minor() 함수는 반대 작업을 수행한다. 즉, 장치 ID를 주면 각각 주 부분과 부 부분을 반환한다. 예를 들어 stat(2)이 반환한 구조체의 장치 ID를 분해하는 데 이 매크로들이 유용할 수 있다.

ATTRIBUTES

이 절에서 사용하는 용어들에 대한 설명은 attributes(7)를 보라.

인터페이스 속성
makedev(), major(), minor() 스레드 안전성 MT-Safe

CONFORMING TO

makedev(), major(), minor() 함수는 POSIX.1에 명세돼 있지 않지만 다른 여러 시스템에 존재한다.

NOTES

이 인터페이스들은 매크로로 정의돼 있다. glibc 2.3.3부터는 GNU 전용 함수 gnu_dev_makedev(), gnu_dev_major(), gnu_dev_minor()의 별칭이다. 내보이는 이름들이긴 하지만 전통적 이름이 더 이식성이 좋다.

BSD에선 <sys/types.h>를 통해 이 매크로들의 정의를 드러낸다. 버전에 따라선 glibc에서도 적당한 기능 검사 매크로가 정의돼 있으면 그 헤더 파일에서 매크로 정의를 드러낸다. 하지만 그 동작은 glibc 2.25에서 폐기 예정이 되었으며, glibc 2.28부터는 <sys/types.h>가 더이상 그 정의를 제공하지 않는다.

SEE ALSO

mknod(2), stat(2)


2021-03-22