Linux: 소켓은 항상 장치 00:08에 있습니까?

Linux: 소켓은 항상 장치 00:08에 있습니까?

C 프로그램에서 소켓을 연 후 fstat이를 실행하면 주요 장치 번호와 보조 장치 번호가 인쇄됩니다. 내 메이저 번호는 0이고 마이너 번호는 8입니다. 확인하다리눅스 커널 문서, 주요 장치 번호 0이 "이름이 지정되지 않은 장치"용으로 예약되어 있는 것을 확인했습니다.

그렇다면 이것이 Linux에 대한 보장입니까? 즉, 소켓은 항상 주 번호 0에 있습니까? 그렇다면 10진수 8도 보장되나요? 헤더에 이러한 값을 정의하는 매크로가 있나요?

이것은 내 코드입니다.

#include <stdio.h>
#include <unistd.h>
#include <sys/socket.h>
#include <sys/stat.h>
#include <sys/sysmacros.h>
#include <sys/types.h>

int main() {
    int ret = 0, sock;
    struct stat fs;

    sock = socket(AF_INET, SOCK_STREAM, 0);
    if ( sock < 0 ) {
        perror("socket");
        return 1;
    }

    if ( fstat(sock, &fs) != 0 ) {
        perror("fstat");
        ret = 1;
    }
    else {
        printf("Socket is on device %u:%u\n", major(fs.st_dev), minor(fs.st_dev));
    }

    close(sock);
    return ret;
}

관련 정보