moooonaaaa
Messages postés56Date d'inscriptionjeudi 26 juillet 2007StatutMembreDernière intervention29 novembre 2010
-
10 avril 2008 à 12:34
moooonaaaa
Messages postés56Date d'inscriptionjeudi 26 juillet 2007StatutMembreDernière intervention29 novembre 2010
-
10 avril 2008 à 17:29
Salut,
j'ai un probléme dans mon code en gcc sous linux.
lors de la compilation j'obtient les messages suivants:
"access_log.c:1033: warning: left-hand operand of comma expression has no effect
access_log.c:1033: warning: left-hand operand of comma expression has no effect
access_log.c:1033: warning: left-hand operand of comma expression has no effect
access_log.c:1033: warning: statement with no effect
access_log.c:1039: warning: left-hand operand of comma expression has no effect
access_log.c:1039: warning: left-hand operand of comma expression has no effect
access_log.c:1039: warning: left-hand operand of comma expression has no effect
access_log.c:1039: warning: statement with no effect
access_log.c:1044: warning: left-hand operand of comma expression has no effect
access_log.c:1044: warning: left-hand operand of comma expression has no effect
access_log.c:1044: error: wrong type argument to unary plus"
La partie du code de la ligne 1033 jusq'au 1044 est la suivante:
" sprintf(req,"select * from connection where sec='%9ld' and
usec='%03d'",(long int) current_time.tv_sec, (int) current_time.tv_usec
/ 1000);
mysql_query(conn,req);
result = mysql_store_result(conn);
num = mysql_num_rows(result);
if (num== 0)
{
sprintf(req,"insert into connection values('%9ld','%03d')",(long int)
current_time.tv_sec,(int) current_time.tv_usec / 1000);
mysql_query(conn,req);mysql_commit(conn);}
// on libère la mémoire prise pour les résultats
mysql_free_result(result);
sprintf(req,"select * from client where adr_IP_client ='%s'",client);"
sprintf(req
,"select * from connection where sec='%9ld' and usec='%03d'"
,(long)current_time.tv_sec,(int)(current_time.tv_usec / 1000));
printf(req);
printf("\n");
sprintf(req
,"insert into connection values('%9ld','%03d')"
,(long)current_time.tv_sec,(int)(current_time.tv_usec / 1000));
printf(req);
printf("\n");
sprintf(req,"select * from client where adr_IP_client ='%s'",client);
printf(req);
printf("\n");
}
Ce qui donne :
select * from connection where sec=' 21' and usec='123'
insert into connection values(' 21','123')
select * from client where adr_IP_client ='Client'
Est-ce que le remplacement des ' par \' change quelque chose ?
(... where sec=\'%9ld\' and usec=\'%03d\')
moooonaaaa
Messages postés56Date d'inscriptionjeudi 26 juillet 2007StatutMembreDernière intervention29 novembre 2010 10 avril 2008 à 16:11
Salut,
je vous remercie beaucoup.
le remplacement des ' par \' changent plusieurs choses.
Le probléme persiste malgrés le remplacement.
quel est l'origine de ce message d'aprés vous.
Vous n’avez pas trouvé la réponse que vous recherchez ?
cs_jfrancois
Messages postés482Date d'inscriptionvendredi 26 août 2005StatutMembreDernière intervention 5 décembre 20092 10 avril 2008 à 16:36
Malheureusement je ne peux pas vous en dire plus arrivé là !
Le code est correct, il faut voir avec quelqu'un maîtrisant la compilation gcc sous Linux, il doit y avoir un problème de paramétrage.