리눅스의 장치번호인 major와 minor 번호를 확인할수 있는 명령어좀 알려주세요

enermysong의 이미지

현재 시스템에서 사용중인 DEVICE 파일의 MAJOR 와 MINOR번호를 알수 있는 명령어좀 알려주세요... 아무리 검색해도 없네요..

cat /proc/device 를 하면 major 번호만 나와서 질문드립니다.

mach의 이미지

파일시스템(유닉스는 모든 디바이스도 파일로 바라보는 관점을 제공)에 대한 정보를 얻는 방법

$ stat --printf="%t %T\n" [파일명]

예시)

$ stat --printf="%t %T\n" /dev/console 
5 1
$

참고: stat, lstat, fstat

부록) http://www.cs.odu.edu/~cs476/unix/codelectures/lstat.c

#include <sys/types.h>
#include <sys/stat.h>
//#include <sys/mkdev.h>
#include <stdio.h>
 
char    *typeOfFile(mode_t);
char    *permOfFile(mode_t);
void     outputStatInfo(char *, struct stat *);
 
int
main(int argc, char **argv)
{
    char *filename;
    struct stat st;
 
    /*
     * For each file on the command line...
     */
    while (--argc) {
        filename = *++argv;
 
        /*
         * Find out about it.
         */
        if (lstat(filename, &st) < 0) {
            perror(filename);
            putchar('\n');
            continue;
        }
 
        /*
         * Print out the information.
         */
        outputStatInfo(filename, &st);
        putchar('\n');
    }
 
    exit(0);
}
 
/*
 * outputStatInfo - print out the contents of the stat structure.
 */
void
outputStatInfo(char *filename, struct stat *st)
{
    printf("File Name:          %s\n", filename);
    printf("File Type:          %s\n", typeOfFile(st->st_mode));
 
    /*
     * If the file is not a device, print its size and optimal
     * i/o unit; otherwise print its major and minor device
     * numbers.
     */
    if (((st->st_mode & S_IFMT) != S_IFCHR) &&
        ((st->st_mode & S_IFMT) != S_IFBLK)) {
        printf("File Size:          %d bytes, %d blocks\n", st->st_size,
               st->st_blocks);
        printf("Optimum I/O Unit:   %d bytes\n", st->st_blksize);
    }
    else {
        printf("Device Numbers:     Major: %u   Minor: %u\n",
               major(st->st_rdev), minor(st->st_rdev));
    }
 
    /*
     * Print the permission bits in both "ls" format and
     * octal.
     */
    printf("Permission Bits:    %s (%04o)\n", permOfFile(st->st_mode),
           st->st_mode & 07777);
 
    printf("Inode Number:       %u\n", st->st_ino);
    printf("Owner User-Id:      %d\n", st->st_uid);
    printf("Owner Group-Id:     %d\n", st->st_gid);
    printf("Link Count:         %d\n", st->st_nlink);
 
    /*
     * Print the major and minor device numbers of the
     * file system that contains the file.
     */
    printf("File System Device: Major: %u   Minor: %u\n",
           major(st->st_dev), minor(st->st_dev));
 
    /*
     * Print the access, modification, and change times.
     * The ctime() function converts the time to a human-
     * readable format; it is described in Chapter 7,
     * "Time of Day Operations."
     */
    printf("Last Access:        %s", ctime(&st->st_atime));
    printf("Last Modification:  %s", ctime(&st->st_mtime));
    printf("Last I-Node Change: %s", ctime(&st->st_ctime));
}
 
/*
 * typeOfFile - return the english description of the file type.
 */
char *
typeOfFile(mode_t mode)
{
    switch (mode & S_IFMT) {
    case S_IFREG:
        return("regular file");
    case S_IFDIR:
        return("directory");
    case S_IFCHR:
        return("character-special device");
    case S_IFBLK:
        return("block-special device");
    case S_IFLNK:
        return("symbolic link");
    case S_IFIFO:
        return("FIFO");
    case S_IFSOCK:
        return("UNIX-domain socket");
    }
 
    return("???");
}
 
/*
 * permOfFile - return the file permissions in an "ls"-like string.
 */
char *
permOfFile(mode_t mode)
{
    int i;
    char *p;
    static char perms[10];
 
    p = perms;
    strcpy(perms, "---------");
 
    /*
     * The permission bits are three sets of three
     * bits: user read/write/exec, group read/write/exec,
     * other read/write/exec.  We deal with each set
     * of three bits in one pass through the loop.
     */
    for (i=0; i < 3; i++) {
        if (mode & (S_IREAD >> i*3))
            *p = 'r';
        p++;
 
        if (mode & (S_IWRITE >> i*3))
            *p = 'w';
        p++;
 
        if (mode & (S_IEXEC >> i*3))
            *p = 'x';
        p++;
    }
 
    /*
     * Put special codes in for set-user-id, set-group-id,
     * and the sticky bit.  (This part is incomplete; "ls"
     * uses some other letters as well for cases such as
     * set-user-id bit without execute bit, and so forth.)
     */
    if ((mode & S_ISUID) != 0)
        perms[2] = 's';
 
    if ((mode & S_ISGID) != 0)
        perms[5] = 's';
 
    if ((mode & S_ISVTX) != 0)
        perms[8] = 't';
 
    return(perms);
}

------------------ P.S. --------------
지식은 오픈해서 검증받아야 산지식이된다고 동네 아저씨가 그러더라.

------------------ P.S. --------------
지식은 오픈해서 검증받아야 산지식이된다고 동네 아저씨가 그러더라.

solbatso의 이미지


그냥

$ls -al /dev/화일명

하면 되지 않나요?

enermysong의 이미지

오홋 이런 방법들이 있었군요... 감사합니다.

댓글 달기

Filtered HTML

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

BBCode

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param>
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

Textile

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • You can use Textile markup to format text.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Markdown

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • Quick Tips:
    • Two or more spaces at a line's end = Line break
    • Double returns = Paragraph
    • *Single asterisks* or _single underscores_ = Emphasis
    • **Double** or __double__ = Strong
    • This is [a link](http://the.link.example.com "The optional title text")
    For complete details on the Markdown syntax, see the Markdown documentation and Markdown Extra documentation for tables, footnotes, and more.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Plain text

  • HTML 태그를 사용할 수 없습니다.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 줄과 단락은 자동으로 분리됩니다.
댓글 첨부 파일
이 댓글에 이미지나 파일을 업로드 합니다.
파일 크기는 8 MB보다 작아야 합니다.
허용할 파일 형식: txt pdf doc xls gif jpg jpeg mp3 png rar zip.
CAPTCHA
이것은 자동으로 스팸을 올리는 것을 막기 위해서 제공됩니다.