Voila la fonction mais avant tu dois redirigé sur le fichier, de plus il te faut également les en tête... pour cela tape dans ta distri linux "MAN va_start" pour savoir ce que tu dois inclure comme librairie...
J'espère que ça marchera, en tout cas ça marchais vraiment bien sur LINUX DEBIAN et LINUX MANDRAKE, ainsi que sur tout type de UNIX...
Code :
- void Trace(char *pszTrace, ... )
- {
- char szBuffer[80];
- va_list arg;
- va_start(arg,pszTrace);
- vsprintf(szBuffer,pszTrace,arg);
- fprintf(stderr,"%s\n",szBuffer);
- va_end(arg);
- return ;
- }
|
qui se fait comme ça dans le main bien sure...
Code :
- FILE *hfErr;
- int main()
- {
- //ouverture du fichier de log ou creation
- if ((hfErr = fopen("Trace.log","w" )) == (FILE *)NULL)
- {
- perror("(Serveur) Err. d'ouverture du fichier Erreur.log... " );
- exit(1);
- }
-
- //redirige vers le standart d'erreur
- if (dup2(fileno(hfErr),2) == -1)
- {
- perror("(Serveur) Err. de dup2()... " );
- exit(1);
- }
- //s'utilise comme ça
- Trace("chaine de caractère a mettre dans le fichier..." );
- fclose (hfErr);
- exit(0);
- }
|
Message édité par moi23372 le 14-02-2005 à 18:36:12