Oracle® Solaris Studio 12.4: C ユーザーガイド

印刷ビューの終了

更新: 2014 年 12 月
 
 

ISO/IEC C90 の処理系定義の動作

『Programming Languages - C (ISO/IEC 9899:1990)』規格は、C で記述されるプログラムの形式を定義し、その解釈を確立します。ただしこの規格では、いくつかの項目が処理系定義 (コンパイラごとに内容が異なる) のままとなっています。この付録では、それらの動作を詳しく説明します。各項は ISO/IEC 9899:1990 規格そのものと簡単に比較できるようになっています。日本の対応規格は、JIS X 3010 - 1993 です。

  • ISO 規格と同様の文を用いて各動作を説明しています。

  • 各動作の説明の前に ISO 規格で対応するセクション番号を付けています。

F.1 ISO 規格との実装の比較

F.1.1 翻訳 (G.3.1)

括弧内の数は、ISO/IEC 9899/1990 規格のセクション番号に対応しています。

F.1.1.1 (5.1.1.3) 診断の認識:

エラーメッセージは次の書式です。

filename, line line number: message

警告メッセージは次の書式です。

filename, line line number: warning message

ここでは:

  • ファイル名とはエラーまたは警告があったファイルの名前です

  • 行番号とはエラーまたは警告が検出された行の番号です

  • メッセージとは診断メッセージです

F.1.2 環境 (G.3.2)

F.1.2.1 (5.1.2.2.1) main の引数の意味

int main (int argc, char *argv[])
{
....
}

argc はプログラムの呼び出しに伴うコマンド行引数の数です。シェルによって展開されたあとは、argc は必ず 1 以上、つまりプログラム名が 1 つ以上になります。

argv はコマンド行引数へのポインタ配列です。

F.1.2.2 (5.1.2.3) 対話型デバイスを構成するもの

対話型デバイスにはシステムライブラリコールの isatty() が 0 以外の値を返します。

F.1.3 識別子 (G.3.3)

F.1.3.1 (6.1.2) 外部リンケージのない識別子の先頭から (31 を超える) 有意文字の数

最初の 1,023 文字が有意です。識別子は大文字と小文字を別の文字として扱います。

(6.1.2) 外部リンケージのある識別子の先頭から (6 を超える) 有意文字の数

最初の 1,023 文字が有意です。識別子は大文字と小文字を別の文字として扱います。

F.1.4 文字 (G.3.4)

F.1.4.1 (5.2.1) ソースと実行の文字セットについて (規格に明確に規定されているものを除く)

どちらの文字セットも ASCII 文字セットやロケール固有の拡張文字と同一です。

F.1.4.2 (5.2.1.2) 複数バイト文字を符号化するためのシフト状態について

シフト状態はありません。

F.1.4.3 (5.2.4.2.1) 実行文字セットで 1 文字のビット数

ASCII 部分では、1 文字に 8 ビットです。ロケール固有の拡張文字部分では、ロケール固有の 8 ビットの倍数です。

F.1.4.4 (6.1.3.4) ソース文字セット (文字と文字列リテラル) メンバーの実行文字セットメンバーへの配置

ASCII 部分では、配置はソース文字と実行文字と同様です。

F.1.4.5 (6.1.3.4) 基本の実行文字セット、またはワイド文字定数用の拡張文字セットのどちらにも表現されていない文字や、エスケープシーケンスを含む整数文字定数の値

右端の文字が示す数値です。たとえば、’\q’ は ’q’ に等しくなります。このようなエスケープシーケンスが発生すると警告が発行されます。

F.1.4.6 (6.1.3.4) 2 つ以上の文字を含む整数文字定数の値、または 2 つ以上の複数バイト文字を含むワイド文字定数の値

エスケープシーケンスの発生しない複数バイト文字セットの値は、各文字の示す数値から派生しています。

F.1.4.7 (6.1.3.4) 複数バイト文字を対応するワイド文字 (コード) に変換するのに使用される現ロケール (locale)

有効なロケールは LC_ALLLC_CTYPE、または LANG 環境変数のいずれかで指定されたものです。

F.1.4.8 (6.2.1.1) 何も付いていない char は、signed char と、unsigned char のどちらと同じ範囲の値を持つか

char は、signed char とみなされます。

F.1.5 整数 (G.3.5)

F.1.5.1 (6.1.2.5) 整数の型の表現と値について

表 F-1  整数の表現と値
整数
ビット数
最小値
最大値
char
8
-128
127
signed char
8
-128
127
unsigned char
8
0
255
short
16
-32768
32767
signed short
16
-32768
32767
unsigned short
16
0
65535
int
32
-2147483648
2147483647
signed int
32
-2147483648
2147483647
unsigned int
32
0
4294967295
long -m32
32
-2147483648
2147483647
long -m64
64
-9223372036854775808
9223372036854775807
signed long -m32
32
-2147483648
2147483647
signed long -m64
64
-9223372036854775808
9223372036854775807
unsigned long -m32
32
0
4294967295
unsigned long -m64
64
0
18446744073709551615
long long
64
-9223372036854775808
9223372036854775807
signed long long

-pedantic とともに指定した場合は無効となります

64
-9223372036854775808
9223372036854775807
unsigned long long
64
0
18446744073709551615

F.1.5.2 (6.2.1.2) 値を表現できない場合に整数をより短い符号付き整数に変換した結果、また符号なしの整数を同じ長さの符号付き整数に変換した結果

整数がより短い signed 整数に変換される場合は、長い方の整数の下位ビットが短い方の signed 整数に複写されます。結果は負になることがあります。

符号なし整数が同サイズの signed 整数に変換される場合は、unsigned 整数の下位ビットが signed 整数に複写されます。結果は負になることがあります。

F.1.5.3 (6.3) 符号付き整数におけるビット単位演算の結果

ビット単位演算を signed の型に適用すると、sign ビットを含むオペランドのビット単位演算となります。その結果の各ビットは、両オペランドの対応するビットが設定されていた場合にのみ設定されます。

F.1.5.4 (6.3.5) 整数の除算における剰余の符号について

結果は被除数と同じ符号になります。たとえば、-23/4 の剰余は -3 となります。

F.1.5.5 (6.3.7) 負の値を持つ符号付き整数型を右シフトした結果

右シフトの結果は signed の右シフトとなります。

F.1.6 浮動小数点 (G.3.6)

F.1.6.1 (6.1.2.5) 浮動小数点数の型の表現と値

表 F-2  float の値
float
ビット数
32
最小値
1.17549435E-38
最大値
3.40282347E+38
イプシロン
1.19209290E-07
表 F-3  double の値
double
ビット数
64
最小値
2.2250738585072014E-308
最大値
1.7976931348623157E+308
イプシロン
2.2204460492503131E-16
表 F-4  longdouble の値
long double
ビット数
128 (SPARC)
80 (x86)
最小値
3.362103143112093506262677817321752603E-4932 (SPARC)
3.3621031431120935062627E-4932 (x86)
最大値
1.189731495357231765085759326628007016E+4932 (SPARC)
1.1897314953572317650213E4932 (x86)
イプシロン
1.925929944387235853055977942584927319E-34 (SPARC)
1.0842021724855044340075E-19 (x86)

F.1.6.2 (6.2.1.3) 整数値が元の値を完全には表現できない浮動小数点数に変換された場合の切り捨ての指示

数値は元の値の近似値に丸められます。

F.1.6.3 (6.2.1.4) 浮動小数点数が短い浮動小数点数に変換された場合の切り捨てまたは丸めの指示

数値は元の値の近似値に丸められます。

F.1.7 配列とポインタ (G.3.7)

F.1.7.1 (6.3.3.4, 7.1.1) 配列の最大サイズを維持するのに必要な整数型、つまり sizeof 演算子の size_t 型。

stddef.h において定義されている unsigned int です (—m32 の場合)。

unsigned long (-m64 の場合)

F.1.7.2 (6.3.4) ポインタを整数に cast で型変換した結果、またはその逆の結果

ポインタおよび intlongunsigned intunsigned long 型の値ではビットパターンは変わりません。

F.1.7.3 (6.3.6, 7.1.1) 同じ配列のメンバーへの 2 つのポインタの相違 ptrdiff_t を維持するのに必要な整数型。

stddef.h において定義されている int です (—m32 の場合)。

long (-m64 の場合)

F.1.8 レジスタ (G.3.8)

F.1.8.1 (6.5.1) register 記憶クラス指定子を使用して、オブジェクトを実際に入れることのできるレジスタの数

有効なレジスタ宣言の数は使用パターンおよび各関数における定義に依存し、割り当て可能なレジスタ数に制限されます。コンパイラやオプティマイザは、レジスタ宣言に従う必要はありません。

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

F.1.9.1 (6.3.2.3) 共用体のオブジェクトのメンバーはほかの型のメンバーを使用してアクセスされる

共用体のメンバーに記憶されているビットパターンがアクセスされ、アクセスしたメンバーの型に従って値が解釈されます。

F.1.9.2 (6.5.2.1) 構造体のメンバーのパディングと整列条件

表 F-5  構造体メンバーのパディングと整列
整列境界
バイト整列
char_Bool
バイト
1
short
ハーフワード
2
int
ワード
4
long -m32
ワード
4
long -m64
ダブルワード
8
long long -m32
ダブルワード (SPARC)
ワード (x86)
8 (SPARC)
4 (x86)
long long -m64
ダブルワード
8
float
ワード
4
double -m32
ダブルワード (SPARC)
ワード (x86)
8 (SPARC)
4 (x86)
double -m64
ダブルワード
8
long double -m32
ダブルワード (SPARC)
ワード (x86)
8 (SPARC)
4 (x86)
long double -m64
クワドワード
16
pointer -m32
ワード
4
pointer -m64
クワドワード
8
float _Complex
ワード
4
double _Complex -m32
ダブルワード (SPARC)
ワード (x86)
8 (SPARC)
4 (x86)
double _Complex -m64
ダブルワード
8
long double _Complex -m32
ダブルワード (SPARC)
ワード (x86)
8 (SPARC)
4 (x86)
long double _Complex -m64
クワドワード
16
float _Imaginary
ワード
4
double _Imaginary -m32
ダブルワード (SPARC)
ワード (x86)
8 (SPARC)
4 (x86)
double _Imaginary -m64
ダブルワード
8
long double _Imaginary -m32
ダブルワード (SPARC)
ワード (x86)
8 (SPARC)
4 (x86)
long double _Imaginary -m64
ダブルワード
16

各要素が適切な境界上に並ぶように、構造体のメンバーが自動的に埋め込まれます。

構造体自身の整列条件はそのメンバーの整列条件と同一です。たとえば、chars 型だけの struct は整列の制限がありませんが、—m64 を使用してコンパイルされた double 型を含む struct は 8 バイトの境界上に並びます。

F.1.9.3 (6.5.2.1) 単なる int のビットフィールドは signed int ビットフィールドとみなされるか、unsigned int ビットフィールドとみなされるか

unsigned int とみなされます。

F.1.9.4 (6.5.2.1) int 内のビットフィールドの割り当て順序

ビットフィールドは、記憶装置内で高位から低位の順に割り当てられます。

F.1.9.5 (6.5.2.1) ビットフィールドは記憶装置の境界を越えることができるか

ビットフィールドは記憶装置の境界を越えません。

F.1.9.6 (6.5.2.2) 列挙型の値を表現するための整数型

int 型です。

F.1.10 修飾子 (G.3.10)

F.1.10.1 (6.5.5.3) volatile 修飾子型を持つオブジェクトへのアクセス方法

オブジェクト名を参照するたびに、そのオブジェクトへアクセスされます。

F.1.11 宣言子 (G.3.11)

F.1.11.1 (6.5.4) 算術演算、構造体、または共用体の型が修正可能な宣言子の最大数

コンパイラによる制限はありません。

F.1.12 文 (G.3.12)

F.1.12.1 (6.6.4.2) switch 文中の case 値の最大個数

コンパイラによる制限はありません。

F.1.13 前処理指令 (G.3.13)

F.1.13.1 (6.8.1) 条件付きのインクルードを制御する定数式のシングルキャラクタ文字定数の値は、実行文字セット中の同一の文字定数の値に一致するか

前処理命令内の文字定数はほかの式のものと同一の数値を持ちます。

F.1.13.2 (6.8.1) そのような文字定数は負の値をとり得るか

この場合の文字定数は負の値を取ることがあります。

F.1.13.3 (6.8.2) インクルード可能なソースファイルの位置を知る方法

最初に、ファイル名が < > によって区切られたファイルを、-I オプションによって指定されたディレクトリの中で検索します。次に、標準ディレクトリの中を検索します。異なるデフォルト位置を指定するのに -YI オプションが使用されていないかぎり、標準ディレクトリは /usr/include です。

最初に、ファイル名が引用符によって区切られたファイルを、#include 文のあるソースファイルのディレクトリ内で検索します。次に、-I オプションによって指定されたディレクトリの中を検索し、最後に標準ディレクトリ内を検索します。

< > や二重引用符で囲まれたファイル名が / で始まっている場合は、そのファイル名はルートディレクトリで始まるパス名であると解釈されます。このファイルの検索はルートディレクトリの中でのみ行われます。

F.1.13.4 (6.8.2) インクルード可能なソースファイルの引用符付きの名前のサポート

include 命令の引用符付きのファイル名はサポートされます。

F.1.13.5 (6.8.2) ソースファイルの文字シーケンスの配置

ソースファイルの文字は対応する ASCII の値に配置されます。

F.1.13.6 (6.8.6) 認識された各 #pragma 指令の動作:

次に示すプラグマがサポートされています。詳細は、プラグマ を参照してください。

  • align integer (variable[, variable])

  • c99 (“implicit” | “no%implicit”)

  • does_not_read_global_data (funcname [, funcname])

  • does_not_return (funcname[, funcname])

  • does_not_write_global_data (funcname[, funcname])

  • error_messages (on|off|default, tag1[ tag2... tagn])

  • fini (f1[, f2..., fn])

  • hdrstop

  • ident string

  • init (f1[, f2..., fn])

  • inline (funcname[, funcname])

  • int_to_unsigned (funcname)

  • MP serial_loop

  • MP serial_loop_nested

  • MP taskloop

  • no_inline (funcname[, funcname])

  • no_warn_missing_parameter_info

  • nomemorydepend

  • no_side_effect (funcname[, funcname])

  • opt_level (funcname[, funcname])

  • pack(n)

  • pipeloop(n)

  • rarely_called (funcname[, funcname])

  • redefine_extname old_extname new_extname

  • returns_new_memory (funcname[, funcname])

  • unknown_control_flow (name[, name])

  • unroll (unroll_factor)

  • warn_missing_parameter_info

  • weak symbol1 [= symbol2]

F.1.13.7 (6.8.8) 翻訳の日付と時間がわからないときの __DATE____TIME__ の定義

これらのマクロは常に使用できます。

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

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

NULL は 0 になります。

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

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

Assertion failed: statement. file filename, line number

ここでは:

  • statement は表明に失敗した文です

  • filename は障害を持ったファイルの名前です

  • line number は障害が発生した行の番号です

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

表 F-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

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

表 F-7  ドメインエラーの場合の戻り値
エラー
数値演算関数
コンパイラモード
-Xs, -Xt
-pedantic, -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)
x
NaN
DOMAIN
remainder(x,0)
NaN
NaN
DOMAIN
acosh(x<1)
NaN
NaN
DOMAIN
atanh(|x|>1)
NaN
NaN

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

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

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

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

F.1.14.7 (7.7.1.1) signal 関数に対するシグナルの集合:

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

表 F-8  signal シグナルの意味
シグナル
いいえ。
デフォルト
イベント
SIGHUP
1
終了
ハングアップ
SIGINT
2
終了
interrupt
SIGQUIT
3
コア
quit
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
無視
子プロセスステータスの変化の別名
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 がブロックされた

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

F.1.15 ロケール固有の動作 (G.4)

F.1.15.1 (7.12.1) 現地時間帯と夏時間の設定

ローカルタイムゾーンは環境変数 TZ で設定します。

F.1.15.2 (7.12.2.1) clock 関数の経過時間

clock 関数の経過時間は、プログラム実行開始時を原点とする時間経過として表現されます。

ホスト環境については次のようなロケール固有の性質があります。

F.1.15.3 (5.2.1) 必要なメンバー以外の実行文字セットの内容

ロケール依存です。C ロケールでは、文字セットの拡張はありません。

F.1.15.4 (5.2.2) 印刷方向

常に左から右に印刷されます。

F.1.15.5 (7.1.1) 10 進小数点を表す文字

ロケール依存です (C ロケールでは、ピリオド「.」)。

F.1.15.6 (7.3) 処理系ごとに定義される文字テストおよびケース配置関数の項目

「4.3.1」と同義です。

F.1.15.7 (7.11.4.4) 実行文字セットの照合シーケンス

ロケール依存です。C ロケールでは、照合順序は ASCII の照合シーケンスと同じです。

F.1.15.8 (7.12.3.5) 時間と日付の書式

ロケール固有です。C ロケールでの形式を次の表にまとめます。月の名前は次のとおりです。

表 F-9  月の名前
January
May
September
February
June
October
March
July
November
April
August
December

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

表 F-10  曜日の名前と省略名
曜日名
省略名
Sunday
Thursday
Sun
Thu
Monday
Friday
Mon
Fri
Tuesday
Saturday
Tue
Sat
Wednesday
Wed

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

%H:%M:%S

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

%m/%d/%y

午前/午後を指定する書式は AM PM です。