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


前へ 次へ 目次 索引



sqrt

引数の平方根を返します。

形式

#include <math.h>

double sqrt (double x);

float sqrtf (float x); (Alpha only)

long double sqrtl (long double x); (Alpha only)


引数

x

実数。

戻り値

val x が負でなかった場合, x の平方根。
0 x は負です。 errno は EDOM に設定されます。
NaN x は NaN です。 errno は EDOM に設定されます。


srand

擬似乱数ジェネレータ randを初期化します。

形式

#include <math.h>

void srand (unsigned int seed);


引数

seed

符号なしの引数。

説明

srand関数は,引数を,それ以降の randの呼び出しで返される擬似乱数の新しいシーケンスのシードとして使用します。

後で srandを同じシード値で呼び出した場合,擬似乱数のシーケンスが繰り返されます。

srandの呼び出しの前に randを呼び出した場合,最初に srandをシード値 1 で呼び出したときと同じ擬似乱数のシーケンスが生成されます。


srand48

48 ビットの乱数ジェネレータを初期化します。

形式

#include <stdlib.h>

void srand48 (long int seed_val);


引数

seed_val

ランダム化の開始時に使用される初期化値。この値を変更すると,ランダム化のパターンが変化します。

説明

srand48関数は乱数ジェネレータを初期化します。この関数は,プログラムの中で drand48lrand48,または mrand48関数を呼び出す前に使用することができます ( これは推奨はされませんが, drand48lrand48,または mrand48関数が,初期化関数を呼び出すことなく呼び出された場合には,定数のデフォルト・イニシアライザ値が自動的に提供されます )。

この関数は,次の線形合同式に従って,48 ビットの整数値 Xi のシーケンスを生成します。


       Xn+1 = (aXn+c)mod m        n >= 0 

引数 m は 248 に等しいので, 48 ビット整数算術演算が実行されます。 lcong48関数を呼び出さなかった場合,乗数値 a と加算される値 c は次のようになります。


      a = 5DEECE66D16 = 2736731631558
      c = B16 = 138

初期化関数 srand48は,Xi の上位 32 ビットを,その引数に含まれている下位 32 ビットに設定します。 Xi の下位 16 ビットは,恣意的な値 330E _16 に設定されます。

drand48lrand48,および mrand48も参照してください。


srandom

擬似乱数ジェネレータ randomを初期化します。

形式

int srandom (unsigned seed);


引数

seed

シードの初期値。

説明

srandom関数は,引数を,それ以降の randomの呼び出しで返される擬似乱数の新しいシーケンスのシードとして使用します。この関数は srand関数と実質的に同じ呼び出しシーケンスと初期化特性を持っていますが,よりランダムなシーケンスを生成します。

srandom関数は,現在の状態をシードの初期値で初期化します。 srandom関数は, srand関数とは異なり,使用される状態情報の量が 1 ワードよりも多いため,以前のシードは返しません。

randsrandrandomsetstate,および initstateも参照してください。


戻り値

0 成功を示します。状態のシードを初期化します。
- 1 エラーを示します。エラーの具体的な内容はグローバルな errno で示されます。


sscanf

メモリ内の文字列から入力を読み込み,書式指定に従って解釈します。

形式

#include <stdio.h>

int sscanf (const char *str, const char *format_spec, ...);


引数

str

sscanfへの入力テキストを提供する文字列のアドレス。

format_spec

書式指定を含んでいる文字列へのポインタ。書式指定と変換文字の詳細については,『HP C ランタイム・ライブラリ・リファレンス・マニュアル(上巻)』第 2 章を参照してください。

...

結果として得られる型が,書式指定で与えられた変換指定に対応するオプションの式。

変換指定が与えられなかった場合,入力ポインタは省略することができます。そうでない場合は,関数呼び出しは変換指定の数以上の入力ポインタを持っていなくてはならず,変換指定は入力ポインタの型と一致していなくてはなりません。

変換指定は,左から右の順序で入力ソースと照合されます。余分な入力ポインタがある場合には,無視されます。


説明

次に変換指定の例を示します。


main () 
{ 
   char str[] = "4 17"; 
   int   temp, 
         temp2; 
 
   sscanf(str, "%d %d", &temp, &temp2); 
   printf("The answers are %d and %d.", temp, temp2); 
} 

この例は,次の出力を生成します。


$ RUN  EXAMPLE
The answers are 4 and 17.

書式指定と入力ポインタの詳細については,『HP C ランタイム・ライブラリ・リファレンス・マニュアル(上巻)』第 2 章を参照してください。


戻り値

x 照合と代入に成功した入力項目の数。
EOF 変換の前に読み込みエラーが発生したことを示します。関数は errno を設定します。この関数が設定する値のリストについては, fscanf を参照してください。


ssignal

特定のシグナルが生成されたときに実行するアクションを指定することができます。

形式

#include <signal.h>

void (*ssignal (int sig, void (*func) (int, ...))) (int, ...);


引数

sig

シグナルに関連付けられた番号またはニーモニック。シグナル値のシンボリック定数は <signal.h>ヘッダ・ファイルに定義されています ( 『HP C ランタイム・ライブラリ・リファレンス・マニュアル(上巻)』第 4 章を参照 )。

func

シグナルが生成されたときに実行するアクション,またはシグナルが生成されたときに実行される関数のアドレス。

説明

ssignal関数は,エラー条件が発生したときの戻り値を除けば, signal関数と等価です。

signal関数は ANSI C 標準によって定義されており, ssignal関数は定義されていないため,移植性を高めるためには signalを使用するようにしてください。

シグナル処理の詳細については,『HP C ランタイム・ライブラリ・リファレンス・マニュアル(上巻)』第 4.2 節を参照してください。


戻り値

x 以前にシグナルのためのアクションとして設定された関数のアドレス。アドレスとしては値 SIG_DFL (0) または SIG_IGN (1)を使用することができます。
0 エラーを示します。このため,リターン・ステータス 0 が失敗を示すのか,前のアクションが SIG_DFL (0) だったのかを区別することはできません。


[w]standend

指定されたウィンドウのボールドフェイス属性を無効にします。 standend関数は stdscrウィンドウに作用します。

形式

#include <curses.h>

int standend (void);

int wstandend (WINDOW *win);


引数

win

ウィンドウへのポインタ。

説明

standendおよび wstandend関数は,属性 _BOLD を指定して呼び出された clrattrおよび wclrattrと等価です。

戻り値

OK 成功を示します。
ERR エラーを示します。


[w]standout

指定されたウィンドウのボールドフェイス属性を有効にします。 standout関数は stdscrウィンドウに作用します。

形式

#include <curses.h>

int standout (void);

int wstandout (WINDOW *win);


引数

win

ウィンドウへのポインタ。

説明

standoutおよび wstandout関数は,属性_BOLD を指定して呼び出された setattrおよび wsetattrと等価です。

戻り値

OK 成功を示します。
ERR エラーを示します。


stat

指定されたファイルに関する情報にアクセスします。

形式

#include <stat.h>

int stat (const char *file_spec, struct stat *buffer); (ISO POSIX-1)

int stat (const char *file_spec, struct stat *buffer, ...); (HP C Extension)

関数バリアント _DECC_V4_SOURCE および _VMS_V6_SOURCE 機能テスト・マクロを定義してコンパイルすると,OpenVMS バージョン 7.0 およびそれ以前の動作と等価な, stat関数へのローカル時刻ベースのエントリ・ポイントが使用可能となります。

引数

file_spec

有効な OpenVMS または UNIX スタイルのファイル指定 ( ワイルドカードは使用できません )。指定されたファイルの読み込み,書き込み,または実行許可は不要ですが,ファイル指定の中のファイルに至るすべてのディレクトリに到達できる必要があります。 UNIX スタイルのファイル指定の詳細については,『HP C ランタイム・ライブラリ・リファレンス・マニュアル(上巻)』第 1 章を参照してください。

buffer

<stat.h>ヘッダ・ファイルに定義されている stat_t型の構造体へのポインタ。

引数は特定のファイルに関する情報を受け取ります。以下に,buffer がポイントする構造体のメンバを示します。

メンバ 定義
st_dev dev_t 物理デバイス名へのポインタ
st_ino[3] ino_t ファイル ID を受け取る 3 つのワード
st_mode mode_t ファイル・"モード" (prot,dir など)
st_nlink nlink_t UNIX システムとの互換性のため
st_uid uid_t オーナ・ユーザ ID
st_gid gid_t グループ・メンバ: st_uid より
st_rdev dev_t UNIX システムとの互換性のため。-- つねに 0
st_size off_t ファイル・サイズ ( バイト数 )
st_atime time_t ファイルのアクセス時刻。常に st_mtime と同じ
st_mtime time_t 最終変更時刻
st_ctime time_t ファイル作成時刻
st_fab_rfm char レコード形式
st_fab_rat char レコード属性
st_fab_fsz char 固定ヘッダ・サイズ
st_fab_mrs unsigned レコード・サイズ

dev_tino_toff_tmode_tnlink_tuid_tgid_t,および time_tは, <stat.h>ヘッダ・ファイルに定義されています。ただし,互換性を指定してコンパイルする場合 (/DEFINE=_DECC_V4_SOURCE) には, dev_tino_t,および off_tのみが定義されます。

off_tデータ型は 32 ビット整数または 64 ビット整数です。 64 ビット・インタフェースでは 2 GB 以上のファイル・サイズを扱うことができ,次のように,コンパイル時に _LARGEFILE 機能テスト・マクロを定義することで選択することができます。


CC/DEFINE=_LARGEFILE 

OpenVMS バージョン 7.0 の段階では,時刻は Epoch (00:00:00 GMT,1970 年 1 月 1 日) 後の経過秒数で指定されます。

st_mode構造体のメンバは, <stat.h>ヘッダ・ファイルに定義されているステータス情報モードです。以下に st_modeのビットを示します。

ビット 定数 定義
0170000 S_IFMT ファイルのタイプ
0040000 S_IFDIR ディレクトリ
0020000 S_IFCHR キャラクタ・スペシャル
0060000 S_IFBLK ブロック・スペシャル
0100000 S_IFREG 通常
0030000 S_IFMPC 多重化キャラクタ・スペシャル
0070000 S_IFMPB 多重化ブロック・スペシャル
0004000 S_ISUID 実行時にユーザ ID を設定
0002000 S_ISGID 実行時にグループ ID を設定
0001000 S_ISVTX 使用後もスワップされたテキストを保存
0000400 S_IREAD 読み込み許可,オーナ
0000200 S_IWRITE 書き込み許可,オーナ
0000100 S_IEXEC 実行/検索許可,オーナ

...

オプションのデフォルト・ファイル名文字列。

これは stat関数に対して指定できる,唯一のオプションの RMS キーワードです。オプションの RMS キーワードとその値の一覧については, creat関数の説明を参照してください。


説明

stat関数は,リモート・ネットワーク・ファイルには使用できません。

ファイルがレコード・ファイルである場合, st_sizeフィールドにはキャリッジ・コントロール情報が含まれます。このため, st_size値は,ファイルから読み込める文字数には対応しません。

stat構造体の st_devメンバが参照する物理デバイス名文字列は,次の stat呼び出しによって上書きされます。

注意 (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 がゼロである場合, 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の以前の動作がデフォルトとなっています。


前へ 次へ 目次 索引