A '% m' konverzió kinyomtatja az errno hibakódjának megfelelő karakterláncot. Lásd: Hibaüzenetek. Így:
fprintf (stderr, "can't open `%s': %m\n", filename);
egyenértékű:
fprintf (stderr, "can't open `%s': %s\n", filename, strerror (errno));
A '% m' konverzió egy GNU C Library kiterjesztés.
Így:
printf("%m\n", d);
egyenértékű
printf("%s\n", strerror (errno), d);
ami egyenértékű
printf("%s\n", strerror (errno));
Vegye figyelembe, hogy%mnem igényel érvet. Ittprintf("%m\n", d)ésprintf("%s\n", strerror (errno), d)a kelleténél több érv legyen: aprintfha vannak további záró érvek, akkor azokat csak kiértékelik és figyelmen kívül hagyják.
Minden válasz
m
A konverzió specifikáció nem C, hanem a GNU kiterjesztéseprintf
:A GNU dokumentációjából:
http://www.gnu.org/software/libc/manual/html_node/Other-Output-Conversions.html
Így:
egyenértékű
ami egyenértékű
Vegye figyelembe, hogy
%m
nem igényel érvet. Ittprintf("%m\n", d)
ésprintf("%s\n", strerror (errno), d)
a kelleténél több érv legyen: aprintf
ha vannak további záró érvek, akkor azokat csak kiértékelik és figyelmen kívül hagyják.Leave a Reply