CPP > Linux > uname

Redjini WiKi
< cpp‎ | linux


이름

uname - 현재 커널에 관한 이름과 정보를 얻어온다.

사용법

#include <sys/utsname.h>

int uname(struct utsname *buf);

설명

uname은 buf가가리키는 구조체에 시스템 정보를 리턴한다.  utsname 구조체는 다음과 같다. 
<sys/utsname.h>:

struct utsname {
    char sysname[SYS_NMLN];
    char nodename[SYS_NMLN];
    char release[SYS_NMLN];
    char version[SYS_NMLN];
    char machine[SYS_NMLN];
    #ifdef _GNU_SOURCE
    char domainname[SYS_NMLN];
    #endif
};
 

반환값

성공시, 0이 리턴된다. 에러시, -1이 리턴되며 errno가적절한 값으로 설정된다.

에러

EFAULT buf가유효하지 않다.

호환

SVr4, SVID, POSIX, X/OPEN

domainname 변수는 GNU 확장이다.

셈플

소스
struct utsname buf;
uname(&buf);
 
printf("sysname    %s\n", buf.sysname   );
printf("nodename   %s\n", buf.nodename  );
printf("release    %s\n", buf.release   );
printf("version    %s\n", buf.version   );
printf("machine    %s\n", buf.machine   );
printf("domainname %s\n", buf.domainname);
출력 결과
sysname    Linux
nodename   redjini.com
release    2.6.18-8.el5
version    #1 SMP Thu Mar 15 19:57:35 EDT 2007
machine    i686
domainname (none)