Sun Studio 12: C ユーザーズガイド

C.1 処理系定義の動作 (J.3)

準拠している処理系では、この節で示されている各部において実際に選択された動作を明記する必要があります。処理系定義の動作は次のとおりです。

C.1.1 翻訳 (J.3.1)

C.1.2 環境 (J.3.2)

表 C–1 signal 関数のシグナルの意味

シグナル番号 

デフォルトのイベント 

シグナルの意味 

SIGHUP 1

終了 

ハングアップ 

SIGINT 2

終了 

割り込み (rubout) 

SIGQUIT 3

コア 

終了 (ASCII FS) 

SIGILL 4

コア 

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

SIGTRAP 5

コア 

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

SIGIOT 6

コア 

IOT 命令 

SIGABRT 6

コア 

異常終了時に使用 

SIGEMT 7

コア 

EMT 命令 

SIGFPE 8

コア 

浮動小数点の例外 

SIGKILL 9

終了 

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

SIGBUS 10

コア 

バスエラー 

SIGSEGV 11

コア 

セグメンテーション違反 

SIGSYS 12

コア 

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

SIGPIPE 13

終了 

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

SIGALRM 14

終了 

アラームクロック 

SIGTERM 15

終了 

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

SIGUSR1 16

終了 

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

SIGUSR2 17

終了 

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

SIGCLD 18

無視 

子プロセス状態の変化 

SIGCHLD 18

無視 

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

SIGPWR 19

無視 

電源障害による再起動 

SIGWINCH 20

無視 

ウィンドウサイズの変更 

SIGURG 21

無視 

ソケットの緊急状態 

SIGPOLL 22

終了 

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

SIGIO 22

Sigpoll 

ソケット入出力可能 

SIGSTOP 23

停止 

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

SIGTSTP 24

停止 

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

SIGCONT 25

無視 

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

SIGTTIN 26

停止 

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

SIGTTOU 27

停止 

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

SIGVTALRM 28

終了 

仮想タイマーの時間切れ 

SIGPROF 29

終了 

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

SIGXCPU 30

コア 

CPU の限界をオーバー 

SIGXFSZ 31

コア 

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

SIGWAITING 32

無視 

スレッド処理コードで使われていた予約シグナル 

SIGLWP 33

無視 

スレッド処理コードで使われていた予約シグナル 

SIGFREEZE 34

無視 

チェックポイント一時停止 

SIGTHAW 35

無視 

チェックポイント再開 

SIGCANCEL 36

無視 

スレッドライブラリで使われている取り消しシグナル 

SIGLOST 37

無視 

リソースがない (レコードロックがない) 

SIGXRES 38

無視 

リソース制御超過 (setrctl(2) を参照) 

SIGJVM1 39

無視 

Java Virtual Machine 用に予約 1 

SIGJVM2 40

無視 

Java Virtual Machine 用に予約 2 

C.1.3 識別子 (J.3.3)

C.1.4 文字 (J.3.4)

表 C–2 標準の英字エスケープシーケンスの固有値

エスケープシーケンス 

固有値 

\a (アラート) 

\b (バックスペース) 

\f (フォームフィード) 

12 

\n (改行) 

10 

\r (復帰) 

13 

\t (水平タブ) 

\v (垂直タブ) 

11 

C.1.5 整数 (J.3.5)

C.1.6 浮動小数点 (J.3.6)

C.1.7 配列とポインタ (J.3.7)

C.1.8 ヒント (J.3.8)

C.1.9 構造体、共用体、列挙型、およびビットフィールド (J.3.9)

表 C–3 構造体メンバーのパディングと整列

型 

整合の境界 

バイト境界 

char 

byte 

short 

halfword 

int 

word 

long (SPARC) v8 

word 

long (SPARC) v9 

doubleword 

float (SPARC) 

word 

double (SPARC) 

doubleword 

double (x86)

doubleword 

long double (SPARC) v8 

doubleword 

long double (x86)

word 

long double (SPARC) v9 

quadword 

16 

pointer (SPARC) v8 

word 

pointer (SPARC) v9 

quadword 

long long 

doubleword (SPARC) 

long long (x86)

word 

_Complex 

float 

_Complex 

double 

16 

_Complex 

long double 

32 

_Imaginary 

float 

_Imaginary (SPARC) 

double 

_Imaginary (x86)

double 

_Imaginary (SPARC) v8 

long double 

_Imaginary (SPARC) v9 

long double 

16 

_Imaginary (x86)

long double 

C.1.10 修飾子 (J.3.10)

C.1.11 前処理指令 (J.3.11)

C.1.12 ライブラリ関数 (J.3.12)

abort によって wait(3C) または waitpid(3C) から使用できるようにされたステータスが、SIGABRT シグナルで終了されたプロセスのステータスになります。abort(3C)、exit(1)、および _Exit(2) のマニュアルページを参照してください。

exit または _Exit によって返される終了ステータスは、呼び出し側のプロセスの親プロセスが行なっていた処理によって異なります。

呼び出し側プロセスの親プロセスが wait(3C) か wait3(3C)、waitid(2)、waitpid(3C) のどれかを実行していて、その SA_NOCLDWAIT フラグの設定がなく、かつ SIGCHLDSIG_IGN に設定していなかった場合、親プロセスは呼び出し側プロセスの終了の通知を受け、ステータスの下位 8 ビット (すなわち、ビット 0377) を使用できるようになります。親が待ち状態ではない場合は、そのあと、親が wait()、wait3()、 waitid()、waitpid() のどれかを実行した時点で子のステータスを利用できるようになります。

C.1.13 アーキテクチャー (J.3.13)

1999 C 規格に明示的に規定されていないオブジェクトの処理系定義のバイト数と順序、符号化方式は、この章の別の場所で定義する必要があります。

表 C–4 sizeof 演算子の結果 (バイト単位)

型 

バイト単位のサイズ 

char 

short 

int 

long 

long v9 

long long 

float 

double 

long double (SPARC) 

16 

long double (x86)

12 

pointer 

pointer v9 

 

_Complex float 

 

_Complex double 

16 

 

_Complex long double 

32 

 

_Imaginary float 

 

_Imaginary double 

 

_Imaginary long double (SPARC) 

16 

 

_Imaginary long double (x86)

12 

C.1.14 ロケール固有の動作 (J.4)

ホスト環境の次の特性はロケール依存で、処理系で文書化する必要があります。

表 C–5 月の名前

January 

May 

September 

February 

June 

October 

March 

July 

November 

April 

August 

December 

曜日の名前は次のとおりです。

表 C–6 曜日の名前と省略名

曜日名 

省略名 

Sunday Thursday 

Sun Thu 

Monday Friday 

Mon Fri 

Tuesday Saturday 

Tue Sat 

Wednesday 

Wed 

時間の書式は次のとおりです。

%H:%M:%S

日付の書式は次のとおりです。

%m/%d/ -Xc モード

午前/午後を指定する書式は、次のとおりです。AM PM