Appel d'une fonction à nombre de paramètres variable
Bonjour,
Voici mon problème:
Depuis peu, je crée des "wrappers", c'est-à-dire des fonctions qui encapsulent d'autres fonctions, spécialement pour les appels système. Cela me permet de mieux appréhender les erreurs. Par exemple, au lieu d'appeler directement la fonction "socket( )", j'appelle "w_socket( )" qui a la forme:
Code:
1 2 3 4 5 6 7 8 9 10
| int w_socket(int domain, int type, int protocol)
{
int retValue = socket(domain, type, protocol);
if (retValue == -1)
{
err_sys("w_socket()");
}
return retValue;
} |
avec la fonction "err_sys( )" qui utilise "strerror(errno)" et qui envoie les messages d'erreur en clair dans un fichier ou utilise syslog (Linux).
Tout allait bien jusqu'au moment ou j'ai voulu mettre un wrapper autour de "sscanf( )":
Code:
1 2 3 4 5 6 7 8 9 10
| int w_sscanf(const char* s, const char* format, ...)
{
int retValue = sscanf(s, format, ...); /* comment écrire l'appel ici ? */
if (retValue == EOF)
{
err_sys("w_sscanf()");
}
return retValue;
} |
Ma question est:
Comment appeler la fonction "sscanf( )" ne connaissant pas ses paramètres?