c - %m書式指定子の意味は何ですか?

Translate

このコードの出力は「成功」と出力されました。

printf("%m\n");
This question and all comments follow the "Attribution Required."

すべての答え

Translate

m変換指定子はCではありませんが、GNU拡張ですprintf:

GNUドキュメントから:

http://www.gnu.org/software/libc/manual/html_node/Other-Output-Conversions.html

'%m'変換は、errnoのエラーコードに対応する文字列を出力します。エラーメッセージを参照してください。したがって:

fprintf (stderr, "can't open `%s': %m\n", filename);

と同等です:

fprintf (stderr, "can't open `%s': %s\n", filename, strerror (errno));

'%m'変換は、GNUCライブラリ拡張です。

そう:

printf("%m\n", d);

と同等です

printf("%s\n", strerror (errno), d);

これは

printf("%s\n", strerror (errno));

ご了承ください%m引数は必要ありません。ここにprintf("%m\n", d)そしてprintf("%s\n", strerror (errno), d)必要以上の引数があります:withprintf末尾に余分な引数がある場合、それらは評価されて無視されます。

ソース
Leave a Reply
You must be logged in to post a answer.
著者について