Je suis censé écrire un programme qui décompresse des fichiers .duf (dont KDE ark permet d'en extraire le contenu -> un fichier JSON)... et d'effectuer des oéprations sur le fichier texte ainsi obtenu.
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 if(rtcd!=REG_NOMATCH) // the file is a .duf extension file { sprintf(ErrMsg,"[%s] %s is a .duf file...\n",__func__,duffile); Log(logFile,ErrMsg); Log(logFile,"...uncompressing..."); char *command=calloc(255,1); sprintf(command,"ark -b ./%s -o ./%s",duffile,tmpdirforunzip); wprintf(L"%s\n",command); system(command); return; }
Je n'ai pas trouvé de librairie C qui permette de prendre en charge le .duf... (zlib ne reconnaît pas le format, libunrar pareil, etc...)
Du coup, je suis forcé d'utiliser cette commande de noob "command".
Le soucis c'est que quand cette partie de code est exécutée j'obtiens de KDE ark "le fichier ne peut pas être ouvert"...
Lorsque je suis dans le même working directory du programme et que j'exécute exactement la même commande passée à system() à savoir "ark -b ./testfiles/cefichier.duf -o ./output" ça fonctionne...
Pourquoi system() semble ne pas être dans le même "working directory" ?
Pourquoi j'obtiens un autre comportement qu'en bash ?
Partager