__osname() — 真のオペレーティング・システム名の取得

標準

標準/拡張機能 C/C++ 依存項目
Language Environment® 両方 OS/390 V2R10

形式

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

int __osname(struct utsname *name);

機能説明

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

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

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

__osname() 関数によって戻される値は、オペレーティング・システムによって提供される機能の レベルを判定するための比較に使用されることを意図しているのでは ありません。これは、バージョンおよびリリースの値が以前のインプリメンテーション 以上であるという保証はないためです。

表 1 に、__osname() 関数によって戻される本当のオペレーティング・システムの情報 をリストします。

表 1. __osname() 関数によって戻されるオペレーティング・システム情報
オペレーティング・システム システム名 リリース バージョン
変更の始まりz/OS® V2.2変更の終わり 変更の始まりz/OS変更の終わり 変更の始まり02.00変更の終わり 変更の始まり02変更の終わり
z/OS V2.1 z/OS 01.00 02
z/OS V1.13 z/OS 13.00 01
z/OS V1.12 z/OS 12.00 01
z/OS V1.11 z/OS 11.00 01
z/OS V1.10 z/OS 10.00 01
z/OS V1.9 z/OS 09.00 01
z/OS V1.8 z/OS 08.00 01
z/OS V1.7 z/OS 07.00 01
z/OS V1.6 z/OS 06.00 01
z/OS V1.5 z/OS 05.00 01
z/OS V1.4 z/OS 04.00 01
z/OS V1.3 z/OS 03.00 01
z/OS V1.2 z/OS 02.00 01
z/OS V1.1 z/OS 01.00 01
OS/390® V2.10 OS/390 10.00 02

戻り値

正常終了した場合、__osname() 関数は負でない値を戻します。

正常終了しなかった場合、__osname() 関数は -1 を戻し、失敗の理由を示すように errno が設定されます。

CELEBO02
⁄*                                                                   
   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 (__osname(&uts) < 0)                                            
    perror("__osname() 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:  z/OS
Nodename: SY1
Release:  02.00
Version:  02
Machine:  2097
変更の終わり

関連情報