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


前へ 次へ 目次 索引



ualarm

インターバル・タイマのタイムアウトを設定または変更します。

形式

#include <unistd.h>

useconds_t ualarm (useconds_t mseconds, useconds_t interval);


引数

mseconds

実時間のマイクロ秒を指定します。

interval

タイマを繰り返すインターバルを指定します。

説明

ualarm関数は, useconds で指定された実時間のマイクロ秒数が経過した後に,呼び出し元プロセスに対して SIGALRMシグナルを送信します。 interval 引数がゼロでなければ, interval で指定されたマイクロ秒の間隔で,タイムアウト通知が繰り返し発生します。通知シグナル SIGALRMがキャッチされないか,無視された場合,呼び出し元プロセスは終了します。

ualarm関数と setitimer関数を組み合わせて呼び出した場合, AST 状態が無効になっていれば,戻り値は無効となります。

ualarm関数と setitimer関数を組み合わせて呼び出した場合, AST 状態が有効になっていれば,戻り値は有効となります。

これは,AST が無効化されていたり, AST レベルで呼び出されたハンドラから呼び出されていた場合, AST ハンドラを呼び出してタイマの以前の値をクリアすることが不可能であるためです。

注意

ualarmalarmまたは sleepの間の相互作用については定められていません。

setitimerも参照してください。


戻り値

n 以前の ualarm または setitimer 呼び出しからの残りのマイクロ秒数。
0 予定されているタイムアウトがない,または ualarm が以前に呼び出されたことがありません。
- 1 エラーを示します。


umask

新しいファイルが作成されるときに使用されるファイル保護マスクを作成し,以前のマスク値を返します。

形式

#include <stat.h>

mode_t umask (mode_t mode_complement);


引数

mode_complement

新しいファイルが作成されるときに,どのビットをオフにするかを示します。各ビットの意味については, chmodの説明を参照してください。

説明

初期状態では,ファイル保護マスクはカレント・プロセスのデフォルト・ファイル保護を元に設定されます。これは,C のメイン・プログラムがスタートアップするか, DECC$CRTL_INIT( または VAXC$CRTL_INIT) が呼び出されたときに行われます。この設定は, umaskを呼び出すことで,プログラムが作成するすべてのファイルについて変更することもできますし, chmodを使用して個々のファイルのファイル保護を変更することもできます。 openまたは creatによって作成されるファイルのファイル保護は, opencreatのモード引数と,前の呼び出しで umaskに渡された値の補数の間のビット論理積です。

注意

UNIX システム・コール関数 umaskmkdircreat,および openで OpenVMS RMS のデフォルト保護を持つファイルを作成するには, umaskを決して呼び出さないプログラムの中で, 0777 のファイル保護モード引数を指定して mkdircreat,および openを呼び出します。これらのデフォルト保護では,ACL やファイルの以前のバージョンなどに基づいて,保護が正しく設定されます。

vfork/ exec呼び出しを行うプログラムでは,新しいプロセス・イメージは, umaskが呼び出されたかどうかの状態を,呼び出し元のプロセス・イメージから継承します。 umask設定と, umask関数が呼び出されたかどうかの状態は,どちらも属性として継承されます。


戻り値

x 以前のマスク値。


uname

システム識別情報を取得します。

形式

#include <utsname.h>

int uname (struct utsname *name);


引数

name

現在のシステム識別子。

説明

uname関数は,現在のシステムを識別する情報の null で終了する文字列を, name 引数が参照する構造体に格納します。

utsname構造体は <utsname.h>ヘッダ・ファイルに定義されており,以下のメンバを含んでいます。

sysname オペレーティング・システム・インプリメンテーションの名前
nodename このマシンのネットワーク名
release オペレーティング・システムのリリース・レベル
version オペレーティング・システムのバージョン・レベル
machine マシン・ハードウェア・プラットフォーム


戻り値

0 成功を示します。
- 1 エラーを示します。 errno または vaxc$errno が適切な値に設定されます。


ungetc

文字を入力ストリームに戻し,ストリームの位置をその文字の前に設定します。

形式

#include <stdio.h>

int ungetc (int character, FILE *file_ptr);


引数

character

int型の値。

file_ptr

ファイル・ポインタ。

説明

ungetc関数を使用すると,文字が file_ptr が指定するファイルに戻されます。

以前にそのファイルに対する操作が行われていなくても, 1 つの文字が戻されることが保証されます。 fseek関数は,戻された文字に関するすべての記憶を消去します。戻された文字は,下位のファイルには書き込まれません。戻される文字が EOF だった場合,操作は失敗し,入力ストリームは変更されず, EOF が返されます。

fseekgetcも参照してください。


戻り値

x 戻される文字。
EOF 文字を戻せないことを示します。


ungetwc

ワイド文字を入力ストリームに戻します。

形式

#include <wchar.h>

wint_t ungetwc (wint_t wc, FILE *file_ptr);


引数

wc

wint_t型の値。

file_ptr

ファイル・ポインタ。

説明

ungetwc関数を使用すると,ワイド文字が file_ptr が指定するファイルに戻されます。

以前にそのファイルに対する操作が行われていなくても, 1 つの文字が戻されることが保証されます。戻された文字が読み込まれる前にファイル位置設定関数 ( fseekなど) が呼び出されると,戻された文字を表すバイトは失われます。

戻される文字が WEOF だった場合,操作は失敗し,入力ストリームは変更されず, WEOF が返されます。

getwcも参照してください。


戻り値

x 戻される文字。
WEOF 関数が文字を戻せなかったことを示します。 errno は以下のいずれかに設定されます。

  • EBADF---ファイル記述子が有効でない。

  • EALREADY---すでに同じファイル対する操作が進行中である。

  • EILSEQ---無効なワイド文字コードが検出された。


unordered (Alpha only)

引数の片方または両方が NaN だった場合に値 1 (TRUE) を返します。それ以外の場合は,値 0 (FALSE) を返します。

形式

#include <math.h>

double unordered (double x, double y);

float unorderedf (float x, float y);

long double unorderedl (long double x, long double y);


引数

x

実数。

y

実数。

戻り値

1 引数の片方または両方が NaN です。
0 どちらの引数も NaN ではありません。


utime

ファイルのアクセスおよび変更時刻を設定します。

形式

#include <types.h>

int utime (const char *path, const struct utimbuf *times);


引数

path

ファイルへのポインタ。

times

NULL ポインタ,または utimbuf構造体へのポインタ。

説明

utime関数は, path 引数で指定されたファイルのアクセスおよび変更時刻を設定します。

times が NULL ポインタである場合には,ファイルのアクセスおよび変更時刻は現在の時刻に設定されます。 utimeをこの形で使用するためには,プロセスの実効ユーザ ID がファイルのオーナと一致する,またはプロセスがファイルへの書き込み許可を持っているか,適切な特権を持っている必要があります。

times が NULL ポインタでない場合には, utimbuf構造体へのポインタとして解釈され,アクセスおよび変更時刻は指定された構造体に含まれている値に設定されます。 utimeをこの形で使用できるのは,ファイルのユーザ ID に等しい実効ユーザ ID を持っているプロセスか,または適切な特権を持つプロセスに限られます。

utimbuf構造体は <utime.h>ヘッダ・ファイルによって定義されています。 utimbuf構造体の中の時刻は,Epoch 以降の経過秒数です。

実行に成功すると, utimeは最後のファイル状態の変更時刻 st_ctimeを更新します。 <stat.h>ヘッダ・ファイルを参照してください。

注意 (Alpha only)

OpenVMS Alpha システムでは, statfstatutime,および utimes関数は,新しいファイル・システムの POSIX 準拠のファイル・タイムスタンプ・サポートに対応して拡張されています。

このサポートは,バージョン 7.3 およびそれ以降の OpenVMS Alpha システム上の ODS-5 デバイスでのみ使用できます。

この変更が行われる以前, statおよび fstat関数は,以下のファイル属性に基づいて st_ctimest_mtime,および st_atimeフィールドの値を設定していました。

st_ctime---ATR$C_CREDATE (ファイル作成時刻)
st_mtime---ATR$C_REVDATE (ファイル更新時刻)
st_atime---ファイル・アクセス時刻がサポートされていなかったため,常に st_mtimeに設定されていた

また,ファイル変更時刻については, utimeおよび utimesは ATR$C_REVDATE ファイル属性を変更し,ファイル・アクセス時刻引数は無視していました。

変更が行われて以降,ODS-5 デバイス上のファイルについては, statおよび fstat関数は,以下の新しいファイル属性に基づいて st_ctimest_mtime,および st_atimeフィールドの値を設定するようになりました。

st_ctime---ATR$C_ATTDATE (最終属性変更時刻)
st_mtime---ATR$C_MODDATE (最終データ変更時刻)
st_atime---ATR$C_ACCDATE (最終アクセス時刻)

ODS-2 デバイスのように ATR$C_ACCDATE が 0 である場合, statおよび fstat関数は st_atimest_mtimeに設定します。

ファイル変更時刻については, utimeおよび utimes関数は, ATR$C_REVDATE と ATR$C_MODDATE の両方のファイル属性を変更します。ファイル・アクセス時刻については,これらの関数は ATR$C_ACCDATE ファイル属性を変更します。 ODS-2 デバイス上で ATR$C_MODDATE および ATR$C_ACCDATE ファイル属性を設定しても効果はありません。

互換性を保つために,デバイスの種類にかかわらず, statfstatutime,および utimesの以前の動作はデフォルトのままとなっています。

新しい動作を有効にするためには,アプリケーションを呼び出す前に, DECC$EFS_FILE_TIMESTAMPS 論理名を明示的に "ENABLE" に定義する必要があります。この論理名を設定しても, ODS-2 デバイス上のファイルに対する statfstatutime,および utimesの動作には影響はありません。


戻り値

0 実行に成功しました。
- 1 エラーを示します。関数は errno を以下のいずれかの値に設定します。

utime 関数は,以下の場合に 失敗します。

  • EACCES -- path 接頭辞のコンポーネントで検索許可が拒否された。または, times 引数が NULL ポインタで,プロセスの実効ユーザ ID がファイルのオーナと一致せず,書き込みアクセスが拒否された。

  • ELOOP -- path を解決する過程で検出したシンボリック・リンクの数が多すぎた。

  • ENAMETOOLONG -- path 引数の長さが {PATH_MAX} を超えた, pathname コンポーネントが {NAME_MAX} よりも長かった,またはシンボリック・リンクのパス名解決の過程で,長さが {PATH_MAX} を超える中間結果が生成された。

  • ENOENT -- path が既存のファイルを指定していない,または path が空の文字列である。

  • ENOTDIR -- path 接頭辞のコンポーネントがディレクトリでない。

  • EPERM -- times は NULL ポインタではなく,呼び出し元プロセスの実効ユーザ ID はファイルへの書き込みアクセスを持っているが,ファイルのオーナと一致せず,呼び出し元プロセスは適切な特権を持っていない。

  • EROFS -- ファイルを含んでいるファイル・システムは読み込み専用である。


utimes

ファイルのアクセスおよび変更時刻を設定します。

形式

#include <time.h>

int utimes (const char *path, const struct timeval times[2]);


引数

path

ファイルへのポインタ。

times

timeval構造体の配列。第 1 の配列メンバは最終アクセスの日付と時刻を,第 2 のメンバは最終変更の日付と時刻を表します。 timeval構造体に含まれる時刻は Epoch 以来の経過秒数とマイクロ秒数を表しますが,最も近い秒への丸めが行われることもあります。

説明

utimes関数は, path 引数がポイントするファイルのアクセスおよび変更時刻を, times 引数の値に設定します。 utimes関数では,マイクロ秒までの精度で時刻を指定することができます。

times 引数が NULL ポインタである場合には,ファイルのアクセスおよび変更時刻は現在の時刻に設定されます。関数をこの形で使用するためには,プロセスの実効ユーザ ID がファイルのオーナと一致する,またはプロセスがファイルへの書き込み許可を持っているか,適切な特権を持っている必要があります。

実行に成功すると, utimesは最後のファイル状態の変更時刻 st_ctimeを更新します。

注意 (Alpha only)

OpenVMS Alpha システムでは, statfstatutime,および utimes関数は,新しいファイル・システムの POSIX 準拠のファイル・タイムスタンプ・サポートに対応して拡張されています。

このサポートは,バージョン 7.3 およびそれ以降の OpenVMS Alpha システム上の ODS-5 デバイスでのみ使用できます。

この変更が行われる以前, statおよび fstat関数は,以下のファイル属性に基づいて st_ctimest_mtime,および st_atimeフィールドの値を設定していました。

st_ctime---ATR$C_CREDATE (ファイル作成時刻)
st_mtime---ATR$C_REVDATE (ファイル更新時刻)
st_atime---ファイル・アクセス時刻がサポートされていなかったため,常に st_mtimeに設定されていた

また,ファイル変更時刻については, utimeおよび utimesは ATR$C_REVDATE ファイル属性を変更し,ファイル・アクセス時刻引数は無視していました。

変更が行われて以降,ODS-5 デバイス上のファイルについては, statおよび fstat関数は,以下の新しいファイル属性に基づいて st_ctimest_mtime,および st_atimeフィールドの値を設定するようになりました。

st_ctime---ATR$C_ATTDATE (最終属性変更時刻)
st_mtime---ATR$C_MODDATE (最終データ変更時刻)
st_atime---ATR$C_ACCDATE (最終アクセス時刻)

ODS-2 デバイスのように ATR$C_ACCDATE が 0 である場合, statおよび fstat関数は st_atimest_mtimeに設定します。

ファイル変更時刻については, utimeおよび utimes関数は, ATR$C_REVDATE と ATR$C_MODDATE の両方のファイル属性を変更します。ファイル・アクセス時刻については,これらの関数は ATR$C_ACCDATE ファイル属性を変更します。 ODS-2 デバイス上で ATR$C_MODDATE および ATR$C_ACCDATE ファイル属性を設定しても効果はありません。


前へ 次へ 目次 索引