상세 컨텐츠

본문 제목

uname 으로 시스템 정보 알아보기 (하드웨어/소프트웨어 타입 확인하기)

프로그래밍/시스템, 서버구축

by 라제폰 2009. 1. 5. 13:03

본문


당신은 당신의 프로그램이 실행되고 있는 컴퓨터의 타입에 대한 정보를 얻기 위하여 uname 함수를 사용할 수 있다.

이 함수와 그것과 연관된 데이터타입은 헤더파일 `sys/utsname. h'에 선언되어 있다.

 

데이터타입 : struct utsname

 

utsname 구조체는 uname 함수에의해 반환된 정보를 저장하는데 사용된다. 다음과 같은 멤버들을 갖는다.
char sysname[] : 사용중인 운영체제의 이름이다.

 

char nodename[]

 

이것은 특정한 컴퓨터의 네트웍 이름이다. GNU라이브러리에서, 이 값은 gethostname에 의해 반환된 것과 같은 값이다; 26. 1절 [Host Identification] 참조.

char release[] : 이것은 운영체제의 현재 개정판 번호이다.

 

char version[] : 이것은 운영체제의 현재 버전(version) 이다.

 

char machine[]

 

이것은 사용중인 하드웨어 타입에 대한 명세이다. 어떤 시스템은 이 정보를 직접적으로 커널로부터 얻을 수 있는 메커니즘을 제공한다. 이러한 메커니즘이 없는 시스템에서, GNU C 라이브러리는 그 라이브러리가 만들어지고 인스톨 될 때 정해진 형태에 기초하여 이 필드를 채운다. GNU 는 시스템 구성을 설명하기 위해서 세-부분을 사용한다; 세부분은 중앙처리장치, 제조회사, 그리고 시스템-타입이고, 그들은 대쉬로 구분된다. 어떤 경우에 그 세부분의 조합된 정보는 유용하지만, 대부분은 실제적으로 유용하지 않고 필요가 없다.
 
기계에서 그 값이 단지 하드웨어에 대한 명세만을 지원한다면, 그것은 두 개의 부분으로 형태의 이름이 구성된다.
예를 들면 다음과 같다:


"sparc-sun", "i386-anything ", "m68k-hp", "m68k-sony", "m68k-sun", "mips-dec"


 

함수 : int uname (struct utsname *info)

 

uname 함수는 info가 가리키고 있는 구조체를 운영체제와 호스트 기계에 대한 정보로 채운다. 음이 아닌 값은 성공적으로 정보가 저장되었음을 얘기하고 -1은 실패할 경우 반환된다. 오직 가능한 에러는 EFAULT 밖에 없는데, 그 에러는 항상 발생가능성이 있는 것으로써 간단히 얘기할 수는 없다.


-a, --all                print all information, in the following order:
  -s, --kernel-name        print the kernel name
  -n, --nodename           print the network node hostname
  -r, --kernel-release     print the kernel release
  -v, --kernel-version     print the kernel version
  -m, --machine            print the machine hardware name
  -p, --processor          print the processor type
  -i, --hardware-platform  print the hardware platform
  -o, --operating-system   print the operating system
      --help     display this help and exit
      --version  output version information and exit

관련글 더보기