snprintf 関数と混同しています。まず第一に、stdio.hの下のターボCバージョンコンパイラで関数snprintfを見つけられませんでした.次に、GNUコンパイラでは、バッファサイズがフォーマットされた文字列よりも小さい場合、snprintfは-1を返しますが、文字数を返す必要があります.バッファーサイズが十分に大きい場合に表示されます。次のソースがあります:
#include<stdio.h>
int main()
{
char str[100];
int numchar = snprintf(str,2,"ello jdj");
printf("%d\n",numchar);
return 0;
}
私がこれまでsnprintfについて知っているように、このコードは8を出力するはずです。しかし、私のGNUコンパイラでは-1を返しています。背後にある事実は何ですか?