「C言語/標準ライブラリ/string.h」の版間の差分

削除された内容 追加された内容
Ef3 (トーク | 投稿記録)
→‎型: 二分割
タグ: 2017年版ソースエディター
Ef3 (トーク | 投稿記録)
タグ: 2017年版ソースエディター
807 行
:文字列へのポインタ
; 機能
: strerror関数は、errnumの数値をメッセージ文字列にマッピングします<ref name="jtc1-sc22-wg14-n1570-7.24.6.2">{{cite book
:errnumに入っている番号をメッセージ文字列に対応付ける。<br>典型的にはerrnumの値は、errnoが使われるが、strerror関数はint型の全ての値に対してメッセージを割り当てなければならない。<br><br>処理系は、いかなるライブラリ関数もstrerror関数を呼び出さない場合の動作と同じ動作をしなければならない。<br><br>返却値は、文字列へのポインタを返す。<br>その内容は、文化圏固有とする。<br>このポインタが指す配列をプログラムで変更してはならないが、strerror関数のそれ以降の呼び出しで書き変わることがある。
| url = http://www.open-std.org/jtc1/sc22/wg14/www/docs/n1570.pdf
; 例
| title = N1570 Committee Draft — April 12, 2011 ISO/IEC 9899:201x
: <syntaxhighlight lang=c>
| page=371, §7.24.6.2 ''The strerror function''
| publisher = ISO/IEC}}</ref>。
: 通常、errnum の値は errno に由来しますが、strerror は int 型のあらゆる値をメッセージにマッピングします。
: strerror 関数は、他の strerror 関数の呼び出しとのデータ競合を回避する必要はありません。
: 実装では、どのライブラリ関数も strerror 関数を呼び出さないかのように動作するものとします。
; 返却値
: strerror関数は、ロケール固有の内容を持つ文字列へのポインタを返します。
: 指し示された配列は、プログラムによって変更されてはなりません。
: しかし、後続の strerror 関数の呼び出しによって上書きされる可能性があります。
; [https://paiza.io/projects/FyWzzYwsTlm-ylUpxrIQJw?language=c 例] : <syntaxhighlight lang=c>
#include <stdio.h>
#include <string.h>
 
int main(void) {
for (int errnum = 0; errnum < 50; errnum++errnum)
{
printf("%2d: %s\n", errnum, strerror(errnum));
int errnum;
for (errnum=0; errnum<50; ++errnum)
printf("%2d:%s\n", errnum, strerror(errnum));
}
</syntaxhighlight>
; 関連項目
; See also
:{{See [[also|C言語/標準ライブラリ/入出力#perror関数]]}}
 
=== strlen関数 ===