Меня смущает функция snprintf. Во-первых, я не нашел функцию snprintf в компиляторе версии Turbo C под stdio.h. Во-вторых, в компиляторе GNU snprintf возвращает -1, когда размер буфера меньше форматированной строки, хотя он должен возвращать количество символов, которое было бы напечатано, если бы размер буфера был достаточно большим. У меня есть следующий источник:
#include<stdio.h>
int main()
{
char str[100];
int numchar = snprintf(str,2,"ello jdj");
printf("%d\n",numchar);
return 0;
}
Этот код должен выводить 8 в соответствии с тем, что я знаю о snprintf до сих пор. но он возвращает -1 в моем компиляторе GNU. Каковы факты?