uname() - 現行のオペレーティング・システム名の表示

標準

標準/拡張機能 C/C++ 依存項目

POSIX.1
XPG4
XPG4.2
Single UNIX Specification、バージョン 3

両方  

形式

#define _POSIX_SOURCE
#include <sys/utsname.h>

int uname(struct utsname *name);

機能説明

uname() 関数は、ユーザーが現在実行中のオペレーティング・システムを識別する情報を取得します。引数 name は、プロセスが現在実行中のオペレーティング・ システムを説明している構造体を格納できるメモリー域を 指しています。

オペレーティング・システムについての情報は、次のエレメントが 入っている utsname 構造体に戻されます。
char *sysname;
オペレーティング・システムのインプリメンテーションの名前。
char *nodename;
この特定マシンのノード名。ノード名は、(IPL で指定された) SYSNAME sysparm によって設定されます。通常、ノード名は、 単一の場所で稼働している複数のマシンを区別します。
char *release;
インプリメンテーションの現行リリース・レベル。
char *version;
リリースの現行バージョン・レベル。
char *machine;
システムが実行中のハードウェア・タイプの名前。

utsname 構造体エレメントは、NULL 文字で終了する、標準 C ストリングです。

OS/390® リリース 2 では、uname() 関数はオペレーティング・システムの真の名前が異なって いても、sysname 値として常に「OS/390」を戻します。これは、互換性を保つためです。バージョン値は、オペレーティング・システムのバージョンが新しくなるたびに増えます。リリース値は、オペレーティング・システムのリリースが新しくなるたびに増えます。

表 1 は、オペレーティング・システム名と、それに対応して uname() 関数が戻す値のリストです。真のオペレーティング・システム名、バージョン、およびリリースを取り出すには 、__osname() 関数を使用します。

表 1. uname() 関数によって戻されるオペレーティング・システム情報
オペレーティング・システム システム名 リリース バージョン
変更の始まりz/OS® V2.2変更の終わり 変更の始まりOS/390変更の終わり 変更の始まり25.00変更の終わり 変更の始まり04変更の終わり
z/OS V2.1 OS/390 24.00 04
z/OS V1.13 OS/390 23.00 03
z/OS V1.12 OS/390 22.00 03
z/OS V1.11 OS/390 21.00 03
z/OS V1.10 OS/390 20.00 03
z/OS V1.9 OS/390 19.00 03
z/OS V1.8 OS/390 18.00 03
z/OS V1.7 OS/390 17.00 03
z/OS V1.6 OS/390 16.00 03
z/OS V1.5 OS/390 15.00 03
z/OS V1.4 OS/390 14.00 03
z/OS V1.3 OS/390 13.00 03
z/OS V1.2 OS/390 12.00 03
z/OS V1.1 OS/390 11.00 03
OS/390 V2.10 OS/390 10.00 02
OS/390 V2.9 OS/390 09.00 02
OS/390 V2.8 OS/390 08.00 02
OS/390 V2.7 OS/390 07.00 02
OS/390 V2.6 OS/390 06.00 02
OS/390 V2.5 OS/390 05.00 02
OS/390 V2.4 OS/390 04.00 02
OS/390 V1.3 OS/390 03.00 01
OS/390 V1.2 OS/390 02.00 01
OS/390 V1.1 MVS 100 1
  MVS 2.2 5

戻り値

正常に実行された場合、uname() 関数は負ではない値を戻します。

正常に実行されなかった場合、uname() 関数は -1 を戻します。失敗の理由を示す errno が設定される可能性がありますが、どの errno 値も POSIX.1 標準によって指定されていません。

CELEBU03
⁄* CELEBU03

   This example gets information about the system you are running on.

 *⁄
#define _POSIX_SOURCE
#include <sys⁄utsname.h>
#include <stdio.h>

main() {
  struct utsname uts;

  if (uname(&uts) < 0)
    perror("uname() error");
  else {
    printf("Sysname:  %s¥n", uts.sysname);
    printf("Nodename: %s¥n", uts.nodename);
    printf("Release:  %s¥n", uts.release);
    printf("Version:  %s¥n", uts.version);
    printf("Machine:  %s¥n", uts.machine);
  }
}
出力:変更の始まり
Sysname:  OS/390
Nodename: SY1
Release:  25.00
Version:  04
Machine:  2097
変更の終わり

関連情報