前へ | 次へ | 目次 | 索引 |
getcマクロは,指定されたファイルから次の文字を返します。
#include <stdio.h>int getc (FILE *file_ptr);
file_ptr
アクセスするファイルを指すポインタ。
getcはマクロであるため,副次効果のあるファイル・ポインタ引数 ( たとえば, getc (*f++)) は正しく評価されないことがあります。このような場合は,代わりに fgetc関数を使用してください。 fgetc関数を参照してください。
n 返された文字。 EOF アァイルの終端 (EOF) またはエラーを示します。
端末画面から 1 文字を取得し,その文字を指定のウィンドウに表示します。 getch関数は文字を stdscrウィンドウに表示します。
#include <curses.h>char getch();
char wgetch (WINDOW *win);
win
ウィンドウを指すポインタ。
getch関数と wgetch関数は,文字を読み込む前に,指定されたウィンドウの表示を更新します。詳細については, scrollok関数を参照してください。
x 返された文字。 ERR 関数が画面を不正にスクロールすることを示します。
標準入力 ( stdin) から 1 文字を読み込みます。
#include <stdio.h>int getchar (void);
getchar関数は fgetc( stdin) と同じです。
x stdin から読み込まれ, int に変換された次の文字。 EOF ファイルの終端 (EOF) またはエラーを示します。
システム単位のクロックの現在の値を取得します。
#include <timers.h>int getclock (int clktyp, struct timespec *tp);
clktyp
システム単位のクロックの種類。tp
システム単位のクロックの現在の値が格納されている timespec構造体を指すポインタ。
getclock関数は, clktyp によって指定されるクロックの現在の値を, tp によって示される記憶位置に格納します。clktyp 引数は, <timers.h>ヘッダ・ファイルに定義されているシンボル定数名として指定します。 TIMEOFDAYシンボル定数だけがサポートされます。この定数は,アクセスするシステム単位の時刻として,通常の time-of-day クロックを指定します。
TIMEOFDAYによって指定されるクロックの場合,この関数から返される値は,Epoch からの経過時間です。 Epoch は 1970 年 1 月 1 日 UTC (協定世界時) 00:00:00 を参照します。
getclock関数は timespec構造体を返します。この構造体は,次に示すように <timers.h>ヘッダ・ファイルに定義されています。
struct timespec { unsigned long tv_sec /* Elapsed time in seconds since the Epoch*/ long tv_nsec /* Elapsed time as a fraction of a second */ /* since the Epoch (in nanoseconds) */ };
0 正常終了を示します。 - 1 エラーを示します。 errno は次のいずれかの値に設定されます。
- EINVAL--- clktyp 引数が認識されるシステム単位のクロックを指定していません。
または SYS$TIMEZONE_DIFFERENTIAL 論理名の値が不正です。
- EIO--- clktyp 引数によって指定されるシステム単位のクロックにアクセスしたときにエラーが発生しました。
現在のワーキング・ディレクトリのファイル指定を指すポインタを返します。
#include <unistd.h>関数バリアント getcwd関数には, _getcwd32および _getcwd64という名前のバリアントがあり,それぞれ 32 ビット・ポインタ・サイズおよび 64 ビット・ポインタ・サイズで使用されます。ポインタ・サイズ固有の関数の使い方の詳細については,『HP C ランタイム・ライブラリ・リファレンス・マニュアル(上巻)』第 1.10 節を参照してください。char *getcwd (char *buffer, size_t size); (ISO POSIX-1)
char *getcwd (char *buffer, unsigned int size, ...); (HP C Extension)
buffer
ディレクトリ指定を格納できるだけの十分な大きさの文字列を指すポインタ。buffer が NULL ポインタの場合は, getcwdは mallocを使用して size バイトの領域を取得します。 この場合, getcwdから返されたポインタをこの後の freeの呼び出しで引数として使用することができます。
size
返されるディレクトリ指定の長さ。...
省略可能な引数であり,1 または 0 に設定できます。1 を指定した場合, OpenVMS 形式でディレクトリ指定が返されます。 0 を指定した場合は, UNIX 形式でディレクトリ指定 ( パス名 ) が返されます。この引数を指定しないと, getcwdは現在のコマンド言語インタプリタ (CLI) に従ってファイル名を返します。 UNIX 形式のディレクトリ指定の詳細については,『HP C ランタイム・ライブラリ・リファレンス・マニュアル(上巻)』第 1.4.3 項を参照してください。
x ファイル指定を指すポインタ。 NULL エラーを示します。
プロセスが同時にオープンできるファイル記述子の総数を取得します。
#include <unistd.h>int getdtablesize (void);
getdtablesize関数は,プロセスが同時にオープンできるファイル記述子の総数を返します。各プロセスでオープンできるファイル記述子の数は一定の数に制限されています。プロセスがオープンできるファイル記述子の数は,次の値の中の最小値です。
- HP C RTL のオープン・ファイル・リミット -- OpenVMS Alpha では 65535,OpenVMS VAX では 2048。
- SYSGEN CHANNELCNT パラメータ---パーマネント I/O チャネル・カウント。
- プロセスのオープン・ファイル・クォータ FILLM パラメータ--- 一度にプロセスがオープンできるファイルの数。
x プロセスが同時にオープンできるファイル記述子の数。 - 1 エラーを示します。
POSIX ID が無効に設定されている場合は,この関数は getgidと同じであり,ユーザ識別コード (UIC) からグループ番号を返します。POSIX ID が有効に設定されている場合は,この関数は呼び出し元プロセスの実効グループ ID を返します。
#include <unistd.h>gid_t getegid (void);
getegid関数は POSIX 形式の識別子 (ID) または UIC ベースの識別子に対して使用できます。
POSIX 形式の ID は, OpenVMS バージョン 7.3-2 およびそれ以降でサポートされています。
POSIX 形式の ID が無効に設定されている場合, getegid関数と getgid関数は同じであり,現在の UIC からグループ番号を返します。たとえば,UIC が [313,031] の場合は,313 がグループ番号です。
POSIX 形式の ID が有効に設定されている場合, getegidは呼び出しプロセスの実効グループ ID を返し, getgidは呼び出しプロセスの実グループ ID を返します。実グループ ID はログイン時に指定されます。実効グループ ID はより一時的なものであり, set-group-ID プロセスの実行時に追加のアクセス許可を決定します。 getgid関数が最も役立つのはこのようなプロセスです。
getegid関数は,必ず成功します。エラーを示すために予約されている戻り値はありません。
POSIX 形式の ID を有効または無効にする方法については,『HP C ランタイム・ライブラリ・リファレンス・マニュアル(上巻)』第 1.7 節を参照してください。
geteuidおよび getuidも参照してください。
x 実効グループ ID (POSIX ID が有効に設定されている場合 ),または UIC から取り出したグループ番号 (POSIX ID が無効に設定されている場合)。
現在のプロセスの環境配列を検索し,指定された環境名に関連付けられている値を返します。
#include <stdlib.h>char *getenv (const char *name);
name
次の値のいずれか。
- HOME --- ユーザのログイン・ディレクトリ
- TERM --- 使用している端末の種類
- PATH --- デフォルトのデバイスとディレクトリ
- USER --- プロセスを開始したユーザの名前
- 論理名またはコマンド言語インタプリタ (CLI) シンボル名
- setenvまたは putenvで設定された環境変数
指定する name の大文字と小文字の区別は重要です。
特定の状況では, getenv関数はユーザ指定引数に対して論理名変換を実行しようとします。
- getenvに対する引数が環境配列内の環境文字列のいずれとも一致しない場合は, getenvはファイル処理の場合と同様に, LNM$FILE_DEV 論理名によって示される論理名テーブルを検索することにより,引数を論理名として変換しようとします。
getenvはまず,大文字と小文字を区別した検索を実行します。その検索が失敗すると,大文字と小文字を区別しない検索を実行します。ほとんどの場合,論理名は大文字で定義されていますが, getenvは小文字を含む論理名も検索することができます。
getenvは繰り返しの論理名変換を実行しません。- 論理名が複数の同値を含む検索リストの場合,返される値は最初の同値を指します。次の例を参照してください。
$ DEFINE A B,C ptr = getenv("A");
Aは " B" を指すポインタを返します。- 論理名が存在しない場合, getenvは引数文字列を CLI シンボルとして変換しようとします。この処理が正しく行われると,変換されたシンボル・テキストが返されます。この処理に失敗すると,戻り値は NULL になります。
getenvは繰り返しの CLI 変換を実行しません。
CLI が DEC/Shell の場合は, Shell 環境シンボルは DCL シンボルとしてインプリメントされているため,関数は論理名変換を実行しません。
注意
OpenVMS バージョン 7.1 では, OpenVMS 環境変数 ( つまり論理名と DCL シンボル ) のキャッシュが getenv関数に追加され,論理名の変換や, DCL シンボルの値の取得のためにライブラリが呼び出しを繰り返すのを回避するようになりました。デフォルト設定では,キャッシュは無効に設定されています。アプリケーションで,実行中に発生する可能性のある OpenVMS 環境変数の変化を追跡する必要がない場合は,アプリケーションを起動する前に DECC$ENABLE_GETENV_CACHE 論理名 (同値文字列) を設定することにより,キャッシュを有効にすることができます。
x 変換後のシンボルを格納した配列を指すポインタ。インデックス 0 に同値名が返されます。 NULL 変換が失敗したことを示します。
POSIX ID が無効に設定されている場合,この関数は getuidと同じであり,ユーザ識別コード (UIC) からメンバ番号 (OpenVMS の用語) を返します。POSIX ID が有効に設定されている場合は,この関数は実効ユーザ ID を返します。
#include <unistd.h>uid_t geteuid (void);
geteuid関数は POSIX 形式の識別子 (ID) または UIC ベースの識別子に対して使用できます。POSIX 形式の ID は, OpenVMS バージョン 7.3-2 およびそれ以降でサポートされています。
POSIX 形式の ID が無効に設定されている場合 (デフォルト), geteuid関数と getuid関数は同じであり,次に示すように現在の UIC からメンバ番号を返します。
- _VMS_V6_SOURCE 機能テスト・マクロを設定してコンパイルされたプログラムや, <unistd.h>ヘッダ・ファイルを取り込まないプログラムの場合, getuid関数と geteuid関数は OpenVMS UIC のメンバ番号を返します。たとえば,UIC が [313,31] の場合,メンバ番号 31 が返されます。
- _VMS_V6_SOURCE 機能テスト・マクロを設定せずにコンパイルされ, <unistd.h>ヘッダ・ファイルを取り込むプログラムの場合は,完全な UIC が返されます。たとえば,UIC が [313, 31] の場合は,20512799 (31 + 313 * 65536) が返されます。
POSIX 形式の ID が有効に設定されている場合, geteuidは呼び出しプロセスの実効ユーザ ID を返し, getuidは呼び出しプロセスの実ユーザ ID を返します。
POSIX 形式の ID を有効または無効にする方法については,『HP C ランタイム・ライブラリ・リファレンス・マニュアル(上巻)』第 1.7 節を参照してください。
getegidおよび getgidも参照してください。
x 実効ユーザ ID (POSIX ID が有効に設定されている場合),または現在の UIC から取り出したメンバ番号または完全な UIC (POSIX ID が無効に設定されている場合)。
POSIX ID が無効に設定されている場合,この関数は getegidと同じであり,ユーザ識別コード (UIC) からグループ番号を返します。POSIX ID が有効に設定されている場合は,この関数は実グループ ID を返します。
#include <unistd.h>gid_t getgid (void);
getgid関数は POSIX 形式の識別子または UIC ベースの識別子に対して使用できます。POSIX 形式の ID は, OpenVMS バージョン 7.3-2 およびそれ以降でサポートされています。
POSIX 形式の ID が無効に設定されている場合 ( デフォルト ), getegid関数と getgid関数は同じであり,現在の UIC からグループ番号を返します。たとえば,UIC が [313,031] の場合,313 がグループ番号です。
POSIX 形式の ID が有効に設定されている場合, getegidは呼び出しプロセスの実効グループ ID を返し, getgidは呼び出しプロセスの実グループ ID を返します。実グループ ID はログイン時に指定されます。実効グループ ID はより一時的なものであり, set-group-ID プロセスの実行時に追加のアクセス許可を決定します。 getgid関数が最も役立つのはこのようなプロセスです。
POSIX 形式の ID を有効または無効にする方法については,『HP C ランタイム・ライブラリ・リファレンス・マニュアル(上巻)』第 1.7 節を参照してください。
geteuidおよび getuidも参照してください。
x 実グループ ID (POSIX ID が有効に設定されている場合),または現在の UIC から取り出したグループ番号 (POSIX ID が無効に設定されている場合)。
前へ | 次へ | 目次 | 索引 |