당신은 당신의 프로그램이 실행되고 있는 컴퓨터의 타입에 대한 정보를 얻기 위하여 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