おい、Macよ
Macさんが、嫌な挙動を見せてくれた。
#includeint main(int argc, char *argv[]) { int len; len = snprintf(NULL, 0, "OK"); printf("len : %d\n", len); return 1; }
これをLinuxで実行すると
len : 2
となる。しかし、MacOSXだと
len : -1
となる。困った。manさんいわく、glibc2.0.6以下はメモリが足りないと-1を返す仕様らしいので、仕方ない。とりあえず、これに依存したコードはMacOSXでは暴走する。痛い。これに依存したコードはあまり無いのだけど、Cでの自作文字列構造体の操作関数では使ってるんだよな。自分で、必要なメモリを数えるしかないのかな。めんどくさ。