Hi everyone. I've decided to learn C99, and so I'm passing -std=c99 to
gcc. I've decided to write a Wikipedia bot in C (don't laugh).
Owing partly to obsessive tendencies and partly due to the need for the
bot to be robust in working unattended at high speed, I want to wrap
printf in a wrapper that automatically detects when printf has failed
and tells the user. The idea is that it is called like this:
int res = safeprint ( __FILE__ , __LINE__ , "Blah" ) ;
if ( res < 0 ) // uh oh
But printf has variadic input. I am scratching my head wondering what
is my best option:
1. Make safeprint a variadic function (I don't know how to do this)
2. Turn on C++ and overload safeprint with different combinations of
arguments
3. Create multiple safeprint functions with different names, that take
different combinations of arguments
Any advice for me? TIA.
-----------------------------------
#include <stdio.h>
#include <string.h>
#include "Error.h"
static const unsigned int StringMax = 100 ;
int safeprint ( const char* file , const unsigned int line , const
char* pstring )
{
int ilength = strlen ( pstring ) ;
int icharsprinted = printf ( "%s" , pstring ) ;
if ( ilength != icharsprinted )
{
Error ( file , line ) ;
return -1 ;
}
return 0 ;
}