Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
2702 connectés 

  FORUM HardWare.fr
  Programmation
  C

  time_t et localtime : assignment from incompatible pointer type

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

time_t et localtime : assignment from incompatible pointer type

n°1231642
bipeuh
Posté le 26-10-2005 à 16:01:46  profilanswer
 

Citation :

#include <stdio.h>
#include <sys/time.h>
#include <stdlib.h>
 
 
extern time_t time (time_t *__timer) __THROW;
extern struct tm *localtime (__const time_t *__timer) __THROW;
 
int TOIHM(int Contexte)
{
 FILE *fp = fopen("/var/log/journallog.ini", "r+" );
 time_t timestamp;
 struct tm
 {
  int tm_sec; /* secondes */
  int tm_min; /* minutes ( 0 -> 59 ) */
  int tm_hour; /* heure (0 -> 23 ) */
  int tm_mday; /* jour du mois (1 -> 31) */
  int tm_mon; /* mois ( 0 -> 11 ) */
  int tm_year; /* annee ( 1970 -> présent ) */
  int tm_wday; /* jour de la semaine ( di:0 -> sa:6 ) */
  int tm_yday; /* jour de l'année (1/1:0 -> 31/12:364) */
  int tm_isdst; /* lié à 'daylight saving time*/
 };
 
 struct tm *t;  //pointeur sur la structure
 
 
 const char *NomJourSemaine[] = {"Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"};
 const char *NomMois[] = {"Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug","Sep", "Oct", "Nov", "Dec"};
 
 
 //Contrôle de l'ouverture du fichier
 if ( fp == NULL )
 {
  //printf("impossible d'ouvrir le fichier journallog.ini" );
  return 0;
 }
 
 //On se place à la fin du fichier
 fseek(fp,0,SEEK_END);
 
 //Lecture de la date et de l'heure
 timestamp = time (NULL);
 t = localtime(&timestamp);
 
 //Ecriture de l'évènement
 fprintf(fp,"\n%s %s %02d %04d\t%02d:%02d:%02d\t\tTime Out IHM %d\n",NomJourSemaine[t->tm_wday],NomMois[t->tm_mon], t->tm_mday, 1900+t->tm_year, t->tm_hour, t->tm_min, t->tm_sec, Contexte);
 fclose(fp);
 return 1;
}


 
à la compile, j'ai un warning : assignment from incompatible pointer type à la ligne t = localtime(&timestamp);
 
quelqu'un peut m'aider car je sèche un peu...

mood
Publicité
Posté le 26-10-2005 à 16:01:46  profilanswer
 

n°1231660
Sve@r
Posté le 26-10-2005 à 16:31:19  profilanswer
 

bipeuh a écrit :

Citation :

#include <stdio.h>
#include <sys/time.h>
#include <stdlib.h>
 
extern time_t time (time_t *__timer) __THROW;
extern struct tm *localtime (__const time_t *__timer) __THROW;


Pourquoi déclarer des fonctions qui sont sûrement déjà déclarées dans <sys/time.h>"
 
 

bipeuh a écrit :

Citation :


int TOIHM(int Contexte)
{
 FILE *fp = fopen("/var/log/journallog.ini", "r+" );
 time_t timestamp;
 struct tm
 {
  int tm_sec; /* secondes */
  int tm_min; /* minutes ( 0 -> 59 ) */
  int tm_hour; /* heure (0 -> 23 ) */
  int tm_mday; /* jour du mois (1 -> 31) */
  int tm_mon; /* mois ( 0 -> 11 ) */
  int tm_year; /* annee ( 1970 -> présent ) */
  int tm_wday; /* jour de la semaine ( di:0 -> sa:6 ) */
  int tm_yday; /* jour de l'année (1/1:0 -> 31/12:364) */
  int tm_isdst; /* lié à 'daylight saving time*/
 };


Pourquoi redéfinir "struct tm" alors qu'elle doit probablement être déjà définie dans <sys/time.h> ???


---------------
Vous ne pouvez pas apporter la prospérité au pauvre en la retirant au riche.
n°1231676
bipeuh
Posté le 26-10-2005 à 16:42:56  profilanswer
 

pour les fonctions c'est pour éviter le warning à la compile...
 
pour la structure, je n'ai pas le choix : erreur à la compil dereferencing pointer to incomplete type

n°1231838
Taz
bisounours-codeur
Posté le 26-10-2005 à 19:25:37  profilanswer
 

si ça warn c'est tu inclues pas ce qu'il faut. le warning final le confirme.

n°1231886
Elmoricq
Modérateur
Posté le 26-10-2005 à 20:47:32  profilanswer
 

Sve@r a écrit :

Pourquoi déclarer des fonctions qui sont sûrement déjà déclarées dans <sys/time.h>"


 
time.h  [:aloy]  
 

Taz a écrit :

si ça warn c'est tu inclues pas ce qu'il faut. le warning final le confirme.


 
+1.
 
struct tm, time() et autres localtime() sont définis dans time.h, pas dans sys/time.h.

n°1232218
bipeuh
Posté le 27-10-2005 à 11:09:28  profilanswer
 

j'ai changé mon include sys/time.h par time.h et ça marche nickel
merci pour le tuyau :sol:  
 
au passage, c'est quoi la différence fondamentale entre les deux? :??:

n°1232244
Taz
bisounours-codeur
Posté le 27-10-2005 à 11:25:48  profilanswer
 

ba c'est pas le même fichier

n°1232298
bipeuh
Posté le 27-10-2005 à 12:11:08  profilanswer
 

et sinon?

n°1232315
blackgodde​ss
vive le troll !
Posté le 27-10-2005 à 12:24:02  profilanswer
 

- c'est quoi la difference entre string.h et stdlib.h
- bah c'est pas le même fichier
- et sinon ?
 
 
time.h est l'include standard, sys/time.h doit etre utilisé en interne par ta plateforme, ou permet de faire du spécifique.

Message cité 1 fois
Message édité par blackgoddess le 27-10-2005 à 12:25:21

---------------
-( BlackGoddess )-
n°1232544
bipeuh
Posté le 27-10-2005 à 15:02:14  profilanswer
 

blackgoddess a écrit :

- c'est quoi la difference entre string.h et stdlib.h
- bah c'est pas le même fichier
- et sinon ?
 
 
time.h est l'include standard, sys/time.h doit etre utilisé en interne par ta plateforme, ou permet de faire du spécifique.


 
 :jap:

mood
Publicité
Posté le 27-10-2005 à 15:02:14  profilanswer
 

n°1234689
Emmanuel D​elahaye
C is a sharp tool
Posté le 31-10-2005 à 01:53:07  profilanswer
 

Sve@r a écrit :

Pourquoi déclarer des fonctions qui sont sûrement déjà déclarées dans <sys/time.h>"


Non. Elles sont sûrement déclarées dans <time.h>

Citation :

Pourquoi redéfinir "struct tm" alors qu'elle doit probablement être déjà définie dans <sys/time.h> ???

Non. Elle est sûrement déclarée dans <time.h>


---------------
Des infos sur la programmation et le langage C: http://www.bien-programmer.fr Pas de Wi-Fi à la maison : http://www.cpl-france.org/
n°1234867
Sve@r
Posté le 31-10-2005 à 11:47:22  profilanswer
 

Emmanuel Delahaye a écrit :

Non. Elles sont sûrement déclarées dans <time.h>

Citation :

Pourquoi redéfinir "struct tm" alors qu'elle doit probablement être déjà définie dans <sys/time.h> ???

Non. Elle est sûrement déclarée dans <time.h>


J'ai répondu assez vite sans contrôler le détail des include de ce code.
L'idée était de dire qu'il est inutile de redéfinir des choses déjà définies dans les include du pgm. Evidemment ce n'était pas les bons include mais le fond est bon...


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  C

  time_t et localtime : assignment from incompatible pointer type

 

Sujets relatifs
Input typeAffecter une icone à un type de fichier en batch
[ACCESS]remettre à zéro un champ de type NuméroAutotype énuméré
[VBScript] Recordset Access et champ de type MémoPHP 4.4.40 + mysql 5.0.13 incompatible entre elle ?
S'il Vous plait une je veux une explication sur le type HDC sur Visu[EXCEL] Format de cellule de type n° hiérarchique
J'aimerais crée un mot de passe (mode console.) en C de type:*********[Pascal] limité le type de la variable
Plus de sujets relatifs à : time_t et localtime : assignment from incompatible pointer type


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR