IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

C Discussion :

probléme avec écriture de fichiers - SIGCHLD


Sujet :

C

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti

    Inscrit en
    Décembre 2002
    Messages
    49
    Détails du profil
    Informations forums :
    Inscription : Décembre 2002
    Messages : 49
    Par défaut probléme avec écriture de fichiers - SIGCHLD
    Bonjour

    J'ai un problème avec l'écriture d'un fichier sur une machine solaris, la premiére fois que j'écris dans le fichier çà marche , par contre la seconde fois çà plante (un signal SIGCHLD est levé et l'application se plante).

    l'erreur est dans l'écriture du fichier, le fprintf (j'ai tracé l'application). J'ai essayé avec fprintf , fputs et fwrite, à chaque fois,c'est pareil çà plante la seconde fois lors de l'écriture dans le fichier.

    est ce que quelqu'un a une idée ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    struct msgin_log * pin;
    	struct msgout_log * pout;
    	char * c;
    	char Buffer[2048];
    	char fname[255];
     
    	time_t ti;
      struct tm * tm = NULL;
     
    	FILE * fp = NULL;
     
     
    	pin = (struct msgin_log *)msg->data_in;
    	pout = (struct msgout_log *)msg->data_out;
    	msg->len_out = sizeof (struct msgout_log);
    	memset (pout, 0, sizeof (struct msgout_log));
     
     
    	// reconstitution du nom du fichier de log support_sofi.client.yyyy-mm-dd.log
    	time (&ti);
    	tm = localtime (&ti);
     
     
    	strncpy ( Buffer, pin->InMsg, 2048 );
    	sprintf ( fname, "support_sofi.client.%04d-%02d-%02d.log", tm->tm_year + 1900, tm->tm_mon + 1, tm->tm_mday );
     
     
    	fp = fopen (fname, "a");
     
    	if ( fp != NULL )
    	{ 
    		//fprintf ( fp,"%s", Buffer );
      	//fwrite (Buffer , 1 , sizeof(Buffer) , fp );
    		fputs(Buffer,fp); 
    		fclose (fp); 
    		fp = NULL;
    	}
     
    	//strcpy ( pout->OutMsg, "" );
    	trace ("_log end");
    }
    version de la machine
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SunOS  5.10 Generic_120011-14 sun4u sparc SUNW,Sun-Fire-V440
    un fichier core est généré lors du plantage, malheureusement je ne peux pas l'analyser gdb et objdump ne sont pas installé sur la machine.

  2. #2
    Membre averti

    Inscrit en
    Décembre 2002
    Messages
    49
    Détails du profil
    Informations forums :
    Inscription : Décembre 2002
    Messages : 49
    Par défaut
    j'ai réussi à contourner le probléme en utilisant les fonction open et write

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 1
    Dernier message: 23/02/2012, 11h44
  2. problème avec écriture dans un fichier
    Par haraelendil dans le forum Débuter
    Réponses: 1
    Dernier message: 08/09/2008, 09h36
  3. [TSaveDialog] Problèmes avec type de fichier
    Par Pedro dans le forum Delphi
    Réponses: 14
    Dernier message: 14/12/2006, 21h53
  4. Réponses: 5
    Dernier message: 04/12/2006, 17h40
  5. Réponses: 18
    Dernier message: 30/06/2005, 13h30

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo