揮発性のメモ2

http://d.hatena.ne.jp/iww/

sprintfは末尾のゼロも書く

sprintf()snprintf()は末尾のゼロも書く。戻り値(書いたバイト数)はゼロの分を含んだり含まなかったりする。

sprintfのとき

sprintf()の戻り値はゼロを含まない

    len = sprintf(str,"hoge");
    printf("%s:len=%d\n",str,len);
hoge:len=4

snprintfのとき(切り詰められない場合)

snprintf()でサイズ指定に余裕があるときの戻り値はゼロを含まない

    len = snprintf(str,8,"fuga");
    printf("%s:len=%d\n",str,len);
fuga:len=4

snprintfのとき(切り詰められた場合)

snprintf()で切り詰められたときの戻り値はゼロを含む

    len = snprintf(str,8,"piyopiyo");
    printf("%s:len=%d\n",str,len);
piyopiy:len=8