개요
파이썬의 os.makedev(major, minor) 메서드는 주 장치 번호(major number)와 부 장치 번호(minor number)를 인자로 받아 이를 조합한 원시(raw) 장치 번호를 생성합니다. 이는 유닉스 계열 시스템에서 특수 장치 파일을 다룰 때 유용하게 사용됩니다.
일반적으로 os.lstat()으로 얻은 통계 정보의 st_dev 값을 os.major()와 os.minor() 함수로 분해한 뒤, 다시 os.makedev()로 합성하는 방식으로 활용합니다.
예제 코드
import os
path = "/var/www/html/foo.txt"
# stat 정보 가져오기
info = os.lstat(path)
# 주 장치 번호와 부 장치 번호 추출
major_dnum = os.major(info.st_dev)
minor_dnum = os.minor(info.st_dev)
# 원시 장치 번호 재구성
dev_num = os.makedev(major_dnum, minor_dnum)
print("Device Number :", dev_num)실행 결과
위 코드를 실행하면 다음과 같은 결과가 출력됩니다.
Device Number : 105
참고 사항
os.makedev(),os.major(),os.minor()는 Linux, macOS 등 유닉스 계열 환경에서만 동작하며 Windows에서는 지원되지 않습니다.os.lstat()은 심볼릭 링크 자체에 대한 정보를 반환하며, 링크가 가리키는 대상의 정보가 필요하면os.stat()을 사용하는 것이 좋습니다.st_dev속성은 해당 파일이 위치한 장치의 고유 ID를 의미합니다.