読者です 読者をやめる 読者になる 読者になる

opamp_sando's blog

クソザコが割りと適当なことを書くためにある備忘録です。あとたまに普通の日記も書きます

C言語のuname関数について

C言語

UNIXにはunameという関数があるようだ。こいつを使うとunameコマンドで得られるような情報が取得できる。
sys/utsname.hをインクルードする必要がある。

uname関数はstruct utsnameのポインタを引数にとるので以下のようにstruct utsname s;を定義してやり&sをつかいポインタを渡す。

#include<stdio.h>
#include<stdlib.h>
#include<unistd.h>
#include<sys/utsname.h>

int main(){
	struct utsname s;
	uname(&s);
	printf("%s\n",s.sysname);
	printf("%s\n",s.nodename);
	printf("%s\n",s.release);
	printf("%s\n",s.version);
	printf("%s\n",s.machine);
}

サンプルはこんな感じ。

strct utsnameのメンバは system = OS名 , nodename = host名 , release = リリースレベル , version = バージョン番号 , machine = ハードウェアの種類
となってるようだ。

上のコードをうちのmacbookで実行すると

Darwin
opamp-MacBook.local
10.8.0
Darwin Kernel Version 10.8.0: Tue Jun 7 16:33:36 PDT 2011; root:xnu-1504.15.3~1/RELEASE_I386
i386

のような出力が出る。

Firefox ブラウザ無料ダウンロード