"cpp/linux/api/uname"의 두 판 사이의 차이
Redjini WiKi
(차이 없음)
|
2018년 4월 1일 (일) 14:17 기준 최신판
이름
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)