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 : 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
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 : 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
 
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 : 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
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