標準/拡張機能 | C/C++ | 依存項目 |
---|---|---|
POSIX.1 |
両方 |
#define _POSIX_SOURCE
#include <sys/utsname.h>
int uname(struct utsname *name);
uname() 関数は、ユーザーが現在実行中のオペレーティング・システムを識別する情報を取得します。引数 name は、プロセスが現在実行中のオペレーティング・ システムを説明している構造体を格納できるメモリー域を 指しています。
各 utsname 構造体エレメントは、NULL 文字で終了する、標準 C ストリングです。
OS/390® リリース 2 では、uname() 関数はオペレーティング・システムの真の名前が異なって いても、sysname 値として常に「OS/390」を戻します。これは、互換性を保つためです。バージョン値は、オペレーティング・システムのバージョンが新しくなるたびに増えます。リリース値は、オペレーティング・システムのリリースが新しくなるたびに増えます。
表 1 は、オペレーティング・システム名と、それに対応して uname() 関数が戻す値のリストです。真のオペレーティング・システム名、バージョン、およびリリースを取り出すには 、__osname() 関数を使用します。
オペレーティング・システム | システム名 | リリース | バージョン |
---|---|---|---|
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
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