путаница с snprintf

Меня смущает функция 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. Каковы факты?

5
задан Bart 5 June 2012 в 09:22
поделиться