Oracle Solaris Studio 12.2: C ユーザーガイド

E.1.14 ライブラリ関数 (G.3.14)

E.1.14.1 (7.1.6) マクロの NULL を拡張した null ポインタ定数

NULL は 0 になります。

E.1.14.2 (7.2) assert 関数によって出力される診断と assert 関数の終了動作

診断は次のようになります。

Assertion failed: statement. file filename, line number

ここで

E.1.14.3 (7.3.1) isalnumisalphaiscntrlislowerisprint、および isupper 関数によってテストされる文字セット

表 E–6 isalphaislower などによりテストされる文字セット

isalnum

ASCII 文字の A から Z、a から z、0 から 9 

isalpha

ASCII 文字の A から Z、a から z、およびロケール固有の単一バイト文字 

iscntrl

0 から 31 までと 127 の値を持つ ASCII 文字 

islower

ASCII 文字の a から z 

isprint

ロケール固有の単一バイトの出力可能文字 

isupper

ASCII 文字の A から Z 

E.1.14.4 (7.5.1) ドメインエラーの数値演算関数によって返される値

表 E–7 ドメインエラーの場合の戻り値

エラー  

数値演算関数  

コンパイラモード  

 

 

 

-Xs, -Xt

-Xa, -Xc

DOMAIN 

acos(|x|>1) 

0.0 

0.0 

DOMAIN 

asin(|x|>1) 

0.0 

0.0 

DOMAIN 

atan2(+-0,+-0) 

0.0 

0.0 

DOMAIN 

y0(0) 

-HUGE 

-HUGE_VAL 

DOMAIN 

y0(x<0) 

-HUGE 

-HUGE_VAL 

DOMAIN 

y1(0) 

-HUGE 

-HUGE_VAL 

DOMAIN 

y1(x<0) 

-HUGE 

-HUGE_VAL 

DOMAIN 

yn(n,0) 

-HUGE 

-HUGE_VAL 

DOMAIN 

yn(n,x<0) 

-HUGE 

-HUGE_VAL 

DOMAIN 

log(x<0) 

-HUGE 

-HUGE_VAL 

DOMAIN 

log10(x<0) 

-HUGE 

-HUGE_VAL 

DOMAIN 

pow(0,0) 

0.0 

1.0 

DOMAIN 

pow(0,neg) 

0.0 

-HUGE_VAL 

DOMAIN 

pow(neg,non-integal) 

0.0 

NaN 

DOMAIN 

sqrt(x<0) 

0.0 

NaN 

DOMAIN 

fmod(x,0) 

NaN 

DOMAIN 

remainder(x,0) 

NaN 

NaN 

DOMAIN 

acosh(x<1) 

NaN 

NaN 

DOMAIN 

atanh(|x|>1) 

NaN 

NaN 

E.1.14.5 (7.5.1) アンダーフローエラーの場合に、数値演算関数が整数式 errno をマクロ ERANGE の値に設定するかどうか

アンダーフローが検出された場合、scalbn を除いた数値演算関数は errnoERANGE に設定します。

E.1.14.6 (7.5.6.4) fmod 関数の第 2 引数が 0 を持つ場合に、ドメインエラーとなるか、0 が返されるか

この場合は、ドメインエラーとして第 1 引数が返されます。

E.1.14.7 (7.7.1.1) signal 関数に対するシグナルの設定

次の表に signal 関数が認識する各シグナルの意味を示します。

表 E–8 signal シグナルの意味

シグナル  

いいえ。  

デフォルト 

イベント  

SIGHUP 

終了 

ハングアップ

SIGINT 

終了 

interrupt

SIGQUIT 

コア 

quit

SIGILL 

コア 

不当な命令 (捕捉されてもリセットされない) 

SIGTRAP 

コア 

トレーストラップ (捕捉されてもリセットされない)

SIGIOT 

コア 

IOT 命令

SIGABRT 

コア 

異常終了時に使用

SIGEMT 

コア 

EMT 命令

SIGFPE 

コア 

浮動小数点の例外

SIGKILL 

終了 

強制終了 (捕捉または無視できない)

SIGBUS 

10 

コア 

バスエラー

SIGSEGV 

11 

コア 

セグメンテーション違反

SIGSYS 

12 

コア 

システムコールへの引数誤り

SIGPIPE 

13 

終了 

読み手のないパイプ上への書き込み

SIGALRM 

14 

終了 

アラームクロック

SIGTERM 

15 

終了 

プロセスの終了によるソフトウェアの停止

SIGUSR1 

16 

終了 

ユーザー定義のシグナル 1

SIGUSR2 

17 

終了 

ユーザー定義のシグナル 2

SIGCLD 

18 

無視 

子プロセス状態の変化

SIGCHLD 

18 

無視 

子プロセス状態の変化の別名

SIGPWR 

19 

無視 

電源障害による再起動

SIGWINCH 

20 

無視 

ウィンドウサイズの変更

SIGURG 

21 

無視 

ソケットの緊急状態

SIGPOLL 

22 

終了 

ポーリング可能なイベント発生

SIGIO 

22 

終了 

ソケット入出力可能

SIGSTOP 

23 

停止 

停止 (キャッチまたは無視できない)

SIGTSTP 

24 

停止 

tty より要求されたユーザーストップ

SIGCONT 

25 

無視 

停止していたプロセスの継続

SIGTTIN 

26 

停止 

バックグラウンド tty の読み込みを試みた

SIGTTOU 

27 

停止 

バックグラウンド tty の書き込みを試みた

SIGVTALRM 

28 

終了 

仮想タイマーの時間切れ

SIGPROF 

29 

終了 

プロファイリングタイマーの時間切れ

SIGXCPU 

30 

コア 

CPU の限界をオーバー

SIGXFSZ 

31 

コア 

ファイルサイズの限界をオーバー

SIGWAITINGT 

32 

無視 

プロセスの LWP がブロックされた

E.1.14.8 (7.7.1.1) signal 関数によって認識される各 signal のデフォルトの取扱い、およびプログラムのスタートアップ時における取扱い

上記を参照してください。

E.1.14.9 (7.7.1.1) シグナルハンドラを呼び出す前に signal(sig, SIG_DFL); 相当のものが実行されない場合は、どのシグナルがブロックされるか

signal(sig,SIG_DFL) 相当のものは、常に実行されます。

E.1.14.10 (7.7.1.1) SIGILL 関数に指定されたハンドラにより SIGILL シグナルが受信された場合は、デフォルト処理はリセットされるか

SIGILL ではデフォルト処理はリセットされません。

E.1.14.11 (7.9.2) テキストストリームの最終行で、改行文字による終了を必要とするか

最終行を改行文字で終了する必要はありません。

E.1.14.12 (7.9.2) 改行文字の直前でテキストストリームに書き出されたスペース文字は読み込みの際に表示されるか

ストリームが読み込まれるときにはすべての文字が表示されます。

E.1.14.13 (7.9.2) バイナリストリームに書かれたデータに追加することのできる null 文字の数

バイナリストリームには null 文字を追加しません。

E.1.14.14 (7.9.3) アペンドモードのストリームのファイル位置指示子は、最初にファイルの始まりと終わりのどちらに置かれるか

ファイル位置指示子は最初にファイルの終わりに置かれます。

E.1.14.15 (7.9.3) テキストストリームへの書き込みを行うと、書き込み点以降の関連ファイルが切り捨てられるか

ハードウェアの命令がないかぎり、テキストストリームへの書き込みによって書き込み点以降の関連ファイルが切り捨てられることはありません。

E.1.14.16 (7.9.3) ファイルのバッファリングの特徴

標準エラーストリーム (stderr) を除く出力ストリームは、デフォルトでは、出力が ファイルの場合にはバッファリングされ、出力が端末の場合にはラインバッファリングされます。標準エラー出力ストリーム (stderr) は、デフォルトではバッファリングされません。

バッファリングされた出力ストリームは多くの文字を保存し、その文字をブロックとして書き込みます。バッファリングされなかった出力ストリームは宛先ファイルあるいは端末に迅速に書き込めるように情報の待ち行列を作ります。行バッファリングされた出力は、その行が完了するまで (改行文字が要求されるまで) 行単位の出力待ち行列に入れられます。

E.1.14.17 (7.9.3) ゼロ長ファイルは実際に存在するか

ディレクトリエントリを持つという意味ではゼロ長ファイルは存在します。

E.1.14.18 (7.9.3) 有効なファイル名を作成するための規則

有効なファイル名は 1 から 1,023 文字までの長さで、null 文字とスラッシュ (/) 以外のすべての文字を使用することができます。

E.1.14.19 (7.9.3) 同一のファイルを何回も開くことができるか

同一のファイルを何回も開くことができます。

E.1.14.20 (7.9.4.1) 開いたファイルへの remove 関数の効果

ファイルを閉じる最後の呼び出しによりファイルが削除されます。すでに除去されたファイルをプログラムが開くことはできません。

E.1.14.21 (7.9.4.2) rename 関数を呼び出す前に新しい名前を持つファイルがあった場合、そのファイルはどうなるか

そのようなファイルがあれば削除され、新しいファイルが元のファイルの上に書き込まれます。

E.1.14.22 (7.9.6.1) fprintf 関数における %p 変換の出力

%p の出力は %x と等しくなります。

E.1.14.23 (7.9.6.2) fscanf 関数における %p 変換の入力

%p の入力は %x と等しくなります。

E.1.14.24 (7.9.6.2) fscanf 関数における %[ 変換のための走査リストで最初の文字でも最後の文字でもないハイフン文字 - の解釈

- 文字は包含的範囲を意味します。すなわち、[0-9][0123456789] に等しくなります。