日本-日本語

製品  >  ソフトウェア  >  OpenVMS  >  マニュアル

OpenVMS マニュアル


≫ 

OpenVMS V7.3-2
ライブラリ

タイトル
目次
まえがき
第 1 章:リファレンス・セクション
索引
PDF
OpenVMS ホーム
OpenVMS | HPE 日本

OpenVMS
HP C ランタイム・ライブラリ・リファレンス・マニュアル (下巻)


目次 索引

このサンプル・コードは,同値文字列として次のいずれも受け付けます。


cmd -ao arg path path 
cmd -a -o arg path path 
cmd -o arg -a path path 
cmd -a -o arg -- path path 
cmd -a -oarg path path 
cmd -aoarg path path 




システム・ページ・サイズを取得します。

形式

#include <unistd.h>

int getpagesize (void);


説明

getpagesize関数は,ページ内のバイト数を返します。システム・ページ・サイズは,メモリ管理システム呼び出しに対する引数を指定するときに便利です。

ページ・サイズはシステム・ページ・サイズであり,必ずしもハードウェア・ページ・サイズと同一ではありません。




戻り値

x 常に正常終了を示します。ページ内のバイト数を返します。




プロセスに対応するプロセス・グループ ID を取得します。

形式

#include <unistd.h>

pid_t getpgid (pid_t pid);




引数



pid

グループ ID を要求するプロセスのプロセス ID。

説明

getpgid関数は, pid で指定されたプロセスのプロセス・グループ ID を返します。 pid が 0 の場合, getpgid関数は,呼び出し元プロセスのプロセス・グループ ID を返します。



戻り値

x 指定されたプロセスのセッション・リーダのプロセス・グループ ID です。
(pid_t) - 1 エラーを示します。この関数は, errno に以下のいずれかの値を設定します。

  • EPERM -- pid で指定されたプロセスが,呼び出し元プロセスと同じセッションに属していないため,この実装では,呼び出し元プロセスからこのプロセスのプロセス・グループ ID へのアクセスが許されていません。

  • ESRCH -- プロセス ID が pid であるようなプロセスはありません。

  • EINVAL -- pid の値が不正です。




呼び出し元プロセスのプロセス・グループ ID を取得します。

形式

#include <unistd.h>

pid_t getpgrp (void);


説明

getpgrp関数は,呼び出し元プロセスのプロセス・グループ ID を返します。

getpgrp関数は必ず成功します。エラーを示すために予約されている戻り値はありません。




戻り値

x 呼び出し元プロセスのプロセス・グループ ID です。




現在のプロセスのプロセス ID を返します。

形式

#include <unistd.h>

pid_t getpid (void);




戻り値

x 現在のプロセスのプロセス ID。




呼び出しプロセスの親プロセス ID を返します。

形式

#include <unistd.h>

pid_t getppid (void);




戻り値

x 親プロセス ID。
0 呼び出しプロセスに親プロセスがないことを示します。




ユーザ・データベース内のユーザ・エントリ情報にアクセスします。 passwd構造体へのポインタが返されます。

形式

#include <pwd.h>

struct passwd *getpwent (void);

関数バリアント getpwent関数には, __getpwent32および __getpwent64という名前のバリアントがあり,それぞれ 32 ビット・ポインタ・サイズおよび 64 ビット・ポインタ・サイズで使用されます。ポインタ・サイズ固有の関数の使い方の詳細については,『HP C ランタイム・ライブラリ・リファレンス・マニュアル(上巻)』第 1.10 節を参照してください。

説明

getpwent関数は,ユーザ・データベースのエントリから得た値がフィールドに格納された構造体へのポインタを返します。データベースのエントリは, getpwentによって順にアクセスされます。最初に呼び出されたとき, getpwentは,ユーザ・データベース内の 1 番目のエントリが格納された passwd構造体へのポインタを返します。その後の呼び出しでは,この関数は,ユーザ・データベース内の次のエントリが格納された passwd構造体へのポインタを返します。このため,連続して呼び出しを行うことで,ユーザ・データベース全体を検索できます。

passwd構造体は, <pwd.h>ヘッダ・ファイルに次のように定義されています。

pw_name ユーザの名前
pw_uid ユーザの ID
pw_gid ユーザの基本グループのグループ ID
pw_dir ユーザのホーム・ディレクトリ
pw_shell ユーザの初期プログラム

読み取り時に,ファイルの終端またはエラーが検出された場合, getpwentは NULL ポインタを返します。

getpwentはユーザ登録ファイル (SYSUAF) を直接アクセスするため,プロセスには適切な特権が必要です。特権がないと,この関数は失敗します。

注意

getpwent関数で生成される情報はすべて,スレッド単位の静的領域に格納され,関数の次の呼び出しで上書きされます。

パスワート・ファイル・エントリが長すぎる場合は無視されます。




戻り値

x 成功した場合, passwd 構造体へのポインタです。
NULL ファイルの終端またはエラーの発生を示します。この関数は, errno に以下のいずれかの値を設定します。

  • EIO -- 入出力エラーの発生,またはユーザ登録ファイル (SYSUAF) にアクセスするための適切な特権がユーザにないことを示します。

  • EMFILE -- 呼び出し元プロセス内で, OPEN_MAX 個のファイル記述子が現在オープンされています。

  • ENFILE -- 許されている最大個数のファイルが,現在システム内でオープンされています。




getpwnam関数は,指定された name のユーザ・データベース・エントリについての情報を返します。

getpwnam_r関数は, getpwnamのリエントラント・バージョンです。


形式

#include <pwd.h>

struct passwd *getpwnam (const char *name); (ISO POSIX-1)

struct passwd *getpwnam (const char *name, ...); (HP C Extension)

int getpwnam_r (const char *name, struct passwd *pwd, char *buffer, size_t bufsize, struct passwd **result); (ISO POSIX-1) , (Alpha only)

int getpwnam_r (const char *name, struct passwd *pwd, char *buffer, size_t bufsize, struct passwd **result, ...); (HP C Extension) , (Alpha only)

関数バリアント getpwnam関数と getpwnam_r関数には, __getpwnam32, _getpwnam_r32, __getpwnam64, _getpwnam_r64という名前のバリアントがあり,それぞれ 32 ビット・ポインタ・サイズおよび 64 ビット・ポインタ・サイズで使用されます。ポインタ・サイズ固有の関数の使い方の詳細については,『HP C ランタイム・ライブラリ・リファレンス・マニュアル(上巻)』第 1.10 節を参照してください。


引数



name

属性を読み込むユーザの名前。

pwd

この関数が結果を格納する passwd構造体のアドレス。

buffer

passwd構造体の最長のエントリを保持できる, result 引数用の作業バッファ。 passwd構造体から指す記憶域は, buffer引数のメモリ (長さは bufsize 文字) から割り当てられます。

bufsize

buffer が指す文字配列の長さ。

result

成功して戻った場合,pwd が設定されます。失敗して戻った場合,result には NULL が設定されます。

...

1 または 0 となるオプションの引数。 1 を指定すると,ディレクトリ指定は,OpenVMS 形式で返されます。 0 を指定すると,ディレクトリ指定 (パス名) は,UNIX 形式で返されます。この引数を省略すると,この関数は現在のコマンド言語インタプリタに従って,ディレクトリ指定を返します。 UNIX 形式のディレクトリ指定についての詳細は,『HP C ランタイム・ライブラリ・リファレンス・マニュアル(上巻)』第 1.4.3 項を参照してください。

説明

getpwnam関数は,ユーザ・データベース内で指定された name のエントリを検索します。この関数は,データベース内のユーザ・エントリのうち, passwd構造体の pw_nameメンバが name 引数と一致する最初のエントリを返します。

passwd構造体は,次に示すように <pwd.h>ヘッダ・ファイルに定義されています。

pw_name ユーザのログイン名
pw_uid 数値ユーザ ID
pw_gid 数値グループ ID
pw_dir ユーザのホーム・ディレクトリ
pw_shell ユーザの初期プログラム

注意

getpwnam関数で生成された情報はすべて,スレッドごとの静的領域に格納され,この関数の次の呼び出しで上書きされます。

getpwnam_r関数は, getpwnamのリエントラント・バージョンです。 getpwnam_r関数は, pwd が指す passwd構造体をアップデートし, result が指すメモリ位置にこの構造体へのポインタを格納します。この構造体には,指定された name と一致するユーザ・データベースのエントリが格納されます。この構造体から指す記憶域は, buffer 引数のメモリ (長さは bufsize 文字) から割り当てられます。このバッファに必要なサイズは, sysconf関数の _SC_GETPW_R_SIZE_MAX パラメータで調べることができます。エラーの場合,または要求されたエントリが見つからない場合は, result が指すメモリ位置に,NULL ポインタが返されます。

エラー状態をチェックするアプリケーションは, getpwnamを呼び出す前に, errnoに 0 を設定する必要があります。 getpwnamが NULL ポインタを返し, errnoがゼロでない場合,エラーが発生しています。




戻り値

x 一致するエントリが見つかった場合, getpwnam は正しい passwd 構造体へのポインタを返します。
NULL エラーが発生した場合,または指定されたエントリが見つからなかった場合, getpwnam は NULL を返します。 errno には,エラーを示す値が設定されます。 getpwnam 関数は,以下の場合に失敗します。

  • EIO -- 入出力エラーが発生しました。

  • EINTR -- getpwnam の実行中にシグナルをキャッチしました。

  • EMFILE -- 呼び出し元プロセス内で, OPEN_MAX 個のファイル記述子が現在オープンされています。

  • ENFILE -- 許されている最大個数のファイルが,現在システム内でオープンされています。

0 成功した場合, getpwnam_r は 0 を返し, result が指すメモリ位置に,アップデートした passwd 構造体へのポインタを格納します。
0 失敗した場合 (エラー,または要求されたエントリが見つからない場合), getpwnam_r は 0 を返し, result が指すメモリ位置に,NULL ポインタを格納します。 getpwnam_r 関数は,次の場合に失敗します。

  • ERANGE -- bufferbufsize で指定された記憶域は,得られた passwd 構造体から指すデータを格納するには不十分です。




getpwuid関数は,指定された uid のユーザ・データベース・エントリについての情報を返します。

getpwuid_r関数は, getpwuidのリエントラント・バージョンです。


形式

#include <pwd.h>

struct passwd *getpwuid (uid_t uid); (ISO POSIX-1)

struct passwd *getpwuid (uid_t uid, ...); (HP C Extension)

int getpwuid_r (uid_t uid, struct passwd *pwd, char *buffer, size_t bufsize, struct passwd **result); (ISO POSIX-1)

int getpwuid_r (uid_t uid, struct passwd *pwd, char *buffer, size_t bufsize, struct passwd **result, ...); (HP C Extension)

関数バリアント getpwuid関数と getpwuid_r関数には, __getpwuid32, _getpwuid_r32, __getpwuid64, _getpwuid_r64という名前のバリアントがあり,それぞれ 32 ビット・ポインタ・サイズおよび 64 ビット・ポインタ・サイズで使用されます。ポインタ・サイズ固有の関数の使い方の詳細については,『HP C ランタイム・ライブラリ・リファレンス・マニュアル(上巻)』第 1.10 節を参照してください。


引数



uid

属性を読み込むユーザ ID (UID)。

pwd

取り出した passwd構造体を格納するメモリ位置。

buffer

passwd構造体内のエントリを保持できる, result 引数用の作業バッファ。 passwd構造体から指す記憶域は, buffer引数のメモリ (長さは bufsize 文字) から割り当てられます。

bufsize

buffer が指す文字配列の長さ。

result

成功して戻った場合,result には pwd が設定されます。失敗して戻った場合,result には NULL が設定されます。

...

1 または 0 となるオプションの引数。 1 を指定すると,ディレクトリ指定は,OpenVMS 形式で返されます。 0 を指定すると,ディレクトリ指定 (パス名) は,UNIX 形式で返されます。この引数を省略すると,この関数は現在のコマンド言語インタプリタに従って,ディレクトリ指定を返します。 UNIX 形式のディレクトリ指定についての詳細は,『HP C ランタイム・ライブラリ・リファレンス・マニュアル(上巻)』第 1.4.3 項を参照してください。

説明

getpwuid関数は,ユーザ・データベース内で,指定された uid のエントリを検索します。この関数は, passwd構造体の pw_uidメンバと uid 引数が一致する,データベース内の最初のユーザ・エントリを返します。

passwd構造体は, <pwd.h>ヘッダ・ファイルに次のように定義されています。

pw_name ユーザのログイン名
pw_uid 数値ユーザ ID
pw_gid 数値グループ ID
pw_dir ユーザのホーム・ディレクトリ
pw_shell ユーザの初期プログラム

注意

getpwuid関数で生成されたすべての情報は,スレッド単位の静的領域に格納され,この関数の次の呼び出しで上書きされます。

getpwuid_r関数は, getpwuidのリエントラント・バージョンです。 getpwuid_r関数は,pwd が指す passwd構造体をアップデートし,result が指すメモリ位置にこの構造体へのポインタを格納します。この構造体には, uid が一致するユーザ・データベースのエントリが格納されます。この構造体から指す記憶域は, buffer 引数のメモリ (サイズは bufsize 文字) から割り当てられます。このバッファに必要なサイズは, sysconf関数の _SC_GETGR_R_SIZE_MAX パラメータで調べることができます。エラーの場合,または要求されたエントリが見つからない場合は, result が指すメモリ位置に,NULL ポインタが返されます。

エラー状態をチェックするアプリケーションは, getpwuidを呼び出す前に, errnoに 0 を設定する必要があります。 getpwuidが NULL ポインタを返し, errnoがゼロでない場合,エラーが発生しています。




戻り値

x 一致するエントリが見つかった場合, getpwuid は正しい passwd 構造体へのポインタを返します。
NULL エラーが発生した場合,または指定されたエントリが見つからなかった場合, getpwuid は NULL を返します。 errno には,エラーを示す値が設定されます。 getpwuid 関数は,以下の場合に失敗します。

  • EIO -- 入出力エラーが発生しました。

  • EINTR -- getpwuid の実行中にシグナルをキャッチしました。

  • EMFILE -- 呼び出し元プロセス内で, OPEN_MAX 個のファイル記述子が現在オープンされています。

  • ENFILE -- 許されている最大個数のファイルが,現在システム内でオープンされています。

0 成功した場合, getpwuid_r は 0 を返し, result が指すメモリ位置に,アップデートした passwd 構造体へのポインタを格納します。
0 失敗した場合 (エラー,または要求されたエントリが見つからない場合), getpwuid_r は 0 を返し, result が指すメモリ位置に,NULL ポインタを格納します。 getpwuid_r 関数は,次の場合に失敗します。

  • ERANGE -- bufferbufsize で指定された記憶域は,得られた passwd 構造体から指すデータを格納するには不十分です。


目次 索引

印刷用画面へ
プライバシー 本サイト利用時の合意事項