probleme de perte de valeur pour une variable
Bonjour tout le monde,
J'ai un petit souci en C et j'espére que vous pourrez m'aider.
Je veux faire un programme permettant de mettre a jour un svn dans un premier temps, puis de renommer les fichiers dans ma base de données afin de mettre à jour selon la convention de nommage appliquée.
J'ai donc deux fonctions :
- une pour faire un update sur le svn :
Code:
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
| char* command_svn (){
FILE * temp;
FILE * temp2;
char version[500];
char fichier[500];
char commande[100];
char* num_version_s = 0;
char res[1000]="";
char* svn_res[1000];
strcpy(svn_res, "");
strcpy (commande,"svn update D:/waatavi/ > fichier");
system(commande);
temp2 = fopen ("fichier","r");
char* text[60];
char text2[60];
while (fgets (text, sizeof (text), temp2) != NULL)
{
printf("%s", text);
format(text, svn_res);
}
fclose (temp2);
return svn_res;
} |
- une autre pour récupérer la version :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
|
char* command_version (){
FILE * temp;
char version1[500];
char commande1[100];
char* num_version_s = 0;
strcpy (commande1,"svnversion > version");
system(commande1);
temp = fopen ("version","r");
fgets(version1, 50, temp);
int longueur1 = strlen(version1);
num_version_s = str_sub(version1, 0, 4);
fclose(temp);
return num_version_s;
} |
et voila enfin mon code principal :
Code:
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
| int main(int argc, char *argv[])
{
char* retour;
char* ret;
MYSQL mysql ;
mysql_init(&mysql);
mysql_options(&mysql,MYSQL_READ_DEFAULT_GROUP,"option");
if(mysql_real_connect(&mysql, "localhost","root","","xxx", 0, NULL, 0)){
retour = command_svn();
mysql_query(&mysql, "SELECT value FROM waa_config WHERE type='VERSION'");
MYSQL_RES *result = NULL;
MYSQL_ROW *row = NULL;
unsigned int i = 0;
result = mysql_use_result(&mysql);
row = mysql_fetch_row(result);
int version_bd = atoi(row[0]);
version_bd ++;
mysql_free_result(result);
char requete[150] = "";
sprintf(requete, "UPDATE waa_config SET value='%d' WHERE type='VERSION'", version_bd);
mysql_query(&mysql, requete);
requete[150] = "";
char* version_svn = command_version();
sprintf(requete, "UPDATE waa_config SET value='%s' WHERE type='SVN_VERSION'", version_svn);
mysql_query(&mysql, requete); |
.....
sauf qu'a ce moment la, ma variable retour perd sa valeur.
savez vous pourquoi ?
en vous remerciant d'avance