Bonjour,

Je vous explique mon problème :

Je porte une classe que j'avais développée en vb.net pour gérer des fichiers logs en Linux C++. Jusque la pas de soucis. Je suis +- débutant on peut dire en C++.

Mon problème vient lorsque je tente d'initier mon fichier log, si le chemin du fichier se trouve dans un répertoire ou j'ai les droits, pas de soucis, mais si je mets comme chemin un répertoire ou je n'ai pas les droits, je reçois "Segmentation Fault". Qq part logique, mais j'aimerai pouvoir traiter cette erreur avec un try catch, mais il ne la prends pas.

Si je lance avec sudo ./main la ca marche sans problème.

Qqn a une idée ou a déjà expérimenté ce problème ?

voici un bout de code :

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
bool CLogfile::Initlogfile()
{
     try
     {
         if(!FileExist(m_filepath))
         {
           FILE *myfile;
           myfile=fopen(m_filepath, "w+t");
           fprintf(myfile, "Initiation of log file- %s\n", m_filepath); // c'est ici que le Segmentation fault apparait
           fclose(myfile);
           return true;
          }
      }
      catch(...)
      {
          printf("An error has occured!\n");
          return false;
      }
}
Merci d'avance,

Looney