library home hp.com home products and services support and drivers solutions
cd-rom home
End of Jump to page title
HP OpenVMS Systems
Documentation

Jump to content


OpenVMS

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


前へ 次へ 目次 索引



snprintf

メモリ内の文字列に対して書式付きの出力を行います。

形式

#include <stdio.h>

int snprintf (char *str, size_t n, const char *format_spec, ...);


引数

str

書式付きの出力を受け取る文字列のアドレス。

n

str が指すバッファのサイズ。

format_spec

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

...

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

変換指定がない場合,出力ソースは省略することができます。そうでない場合は,関数呼び出しは変換指定の数以上の出力ソースを持っていなくてはならず,変換指定は出力ソースの型と一致していなくてはなりません。

変換指定は,左から右の順序で出力ソースと対応づけられます。余分な出力ソースがある場合には,無視されます。


説明

snprintf関数は, sprintf関数と同等ですが, str が指すバッファのサイズを指定する n 引数が追加されています。

成功して終了すると snprintfは, n が十分に大きい場合に str に書き込まれるバイトの数 (末尾のヌル・バイトは除く) を返します。

n が 0 の場合は,何も書き込まれませんが, n が十分に大きい場合に書き込まれるバイトの数 (末尾のヌル・バイトは除く) が返されます。この場合,str は NULL ポインタでも構いません。 0 以外の場合,n - 1 番目より後の出力バイトは配列には書き込まれず,破棄されます。そして,実際に配列に書き込まれたバイト列の最後にヌル・バイトが書き込まれます。

出力エラーが検出された場合,負の値が返されます。

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


戻り値

x n が十分に大きい場合に str に書き込まれるバイトの数 (末尾のヌル・バイトを除く) です。
負の値 出力エラーが発生したことを示します。この関数は, errno を設定します。この関数が設定する errno 値のリストについては, fprintf を参照してください。


sprintf

メモリ内の文字列に対して書式付きの出力を行います。

形式

#include <stdio.h>

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


引数

str

書式付きの出力を受け取る文字列のアドレス。この文字列は出力を保持できるだけの大きさを持っているものと仮定されます。

format_spec

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

...

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

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

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


説明

sprintf関数は,出力の最後にヌル文字 (\0) を付加し, *str から始まる連続したバイト内に置きます。ユーザは,十分な領域を確保しなければなりません。

次の変換指定の例を考えてみましょう。


#include <stdio.h> 
 
main() 
{ 
   int  temp = 4, temp2 = 17; 
   char s[80]; 
 
   sprintf(s, "The answers are %d, and %d.", temp, temp2); 
} 

この例では,文字列 sは次の内容を持ちます。


The answers are 4, and 17. 

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


戻り値

x 出力文字列に格納される文字の数。最後の null 文字は含みません。
負の値 出力エラーが発生したことを示します。関数は errno を設定します。この関数が設定する errno 値のリストについては, fprintf を参照してください。


sqrt

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

形式

#include <math.h>

double sqrt (double x);

float sqrtf (float x); (Alpha, I64)

long double sqrtl (long double x); (Alpha, I64)


引数

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関数へのローカル時刻ベースのエントリ・ポイントが使用可能となります。

機能テスト・マクロ _USE_STD_STAT を定義してコンパイルすると, X/Open 標準の stat構造体の定義を使用する stat関数のバリアントが有効になります。機能テスト・マクロ _USE_STD_STAT は,_DECC_V4_SOURCE マクロおよび _VMS_V6_SOURCE マクロと互いに排他です。


引数

file_spec

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

buffer

stat型の構造体へのポインタ。便宜のため,ヘッダ・ファイル <stat.h>の中で, typedef stat_tstruct statとして定義されています。

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

...

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

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


説明

機能テスト・マクロ _USE_STD_STAT を有効にしていない場合,従来の stat構造体が使用されます。 _USE_STD_STAT を有効にすると,X/Open 標準に準拠した stat構造体が使用されます。

従来の stat 構造体

機能テスト・マクロ _USE_STD_STAT に DISABLE を定義すると,以下に示す従来の stat構造体が使用されます。

メンバ 定義
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のみが定義されます。


前へ 次へ 目次 索引