//Funkcja zabezpiecza przed nadpisaniem wartosci zmiennych przy uzyciu funkcji _snprintf

#include<stdio.h>
#include<string.h>

bool obsluga_snprint(char *msg);

int main()
{
  int i;
  char ak[300];
  for (i=0; i<300; i++)
    ak[i]='a';
  bool b;
  int z;
  b=obsluga_snprint(ak);
  printf("\n%d\n",b);
  scanf("%c",&z);
  return 0;
}

bool obsluga_snprint(char *msg)
{
        
  int i; 
  int k=6666;
  char buf[199];
  if(msg == NULL)
         return false;
//Kopiuje do buf msg
  if(_snprintf(buf, sizeof(buf)-1,msg)< 0)
//Przepełnienie - błąd
   {
            printf("\n%d\n",k);
            return false;
   }
  else
    buf[sizeof(buf)-1] = '\0';

  for (i=0; i<strlen(buf); i++)
    printf("%c",buf[i]);
  printf("\n");

//.. dalsze działanie programu
  return true;

}
  
