Pages : 1
#1 Le 28/06/2008, à 22:02
- wwiki
CodeBlocks fopen Ubuntu8.04
Bonjour à tous,
J'ai un phénomène étrange avec le code suivant :
#include <stdio.h>
#include <stdlib.h>
int main()
{
printf("FileExample\n");
FILE* inFile = NULL;
inFile = fopen("test","r");
if (inFile == NULL)
{
fprintf(stderr, "Error open file.\n" ) ;
}
else
{
printf("File open.\n");
fclose(inFile);
}
return 0;
}
Lorsque j'utilise le bouton Run de CodeBlocks le fichier est toujours ouvert => Dysfonctionnement.
Lorsque j'execute le programme en ligne de commande , c'est ok => Fonctionnement correct.
Il me semble que cela vient des options de CodeBlocks.
Checking for existence: /home/user/Workspace/FileExample/bin/Release/FileExample
Executing: xterm -T FileExample -e /usr/bin/cb_console_runner LD_LIBRARY_PATH=$LD_LIBRARY_PATH:. /home/user/Workspace/FileExample/bin/Release/FileExample (in /home/user/Workspace/FileExample/.)
Vous en pensez quoi ?
#2 Le 28/06/2008, à 22:07
- nicolas.sitbon
Re : CodeBlocks fopen Ubuntu8.04
Développe un peu plus, quel test as tu fais? pourquoi prendre le fichier "test" en particuliers?
Hors ligne
#3 Le 29/06/2008, à 15:00
- wwiki
Re : CodeBlocks fopen Ubuntu8.04
Développe un peu plus, quel test as tu fais? pourquoi prendre le fichier "test" en particuliers?
Le fichier test est un exemple, il ne contient rien.
Pour illustrer le test, je joinds 2 captures d'écrans. Ces captures d'écran permettent de voir le fonctionnement en ligne de commande et grâce au bouton Run de CodeBlocks avec ou sans fichier test.
#4 Le 29/06/2008, à 16:12
- robrob
Re : CodeBlocks fopen Ubuntu8.04
La différence est sans doute le répertoire d'execution.
Par exemple, sous kde, quand tu cliques sur un executable, il est lancé à partir du home/ et pas de son "vrai" répertoire. Il est possible de Code Blocks ait le même comportement.
Essaye d'afficher au démarrage le répertoire courant du programme (par exemple avec un system("pwd") )
Dernière modification par robrob (Le 29/06/2008, à 16:13)
Hors ligne
#5 Le 29/06/2008, à 16:16
- nicolas.sitbon
Re : CodeBlocks fopen Ubuntu8.04
En fait, il faudrait vérifier le répertoire de travail de ton programme quand celui ci est lancé par code block car il existe un fichier test dans /usr/bin, donc si le le répertoire de travail est /usr/bin alors forcément le fichier est toujours présent. Utilise la fonction getcwd() pour imprimer le répertoire courant et dis nous.
Hors ligne
#6 Le 29/06/2008, à 16:55
- robrob
Re : CodeBlocks fopen Ubuntu8.04
D'un autre côté, à moins de lancer code block en root, il aura du mal à générer un exécutable dans /usr/bin
Hors ligne
#8 Le 29/06/2008, à 17:17
- nicolas.sitbon
Re : CodeBlocks fopen Ubuntu8.04
D'un autre côté, à moins de lancer code block en root, il aura du mal à générer un exécutable dans /usr/bin
Pas besoin de le générer, le fichier test est toujours dans /usr/bin.
Hors ligne
#9 Le 29/06/2008, à 17:19
- nicolas.sitbon
Re : CodeBlocks fopen Ubuntu8.04
Bien vu nicolas.sitbon et robrob.
http://img104.imageshack.us/img104/173/getcwdbg6.th.png
Il ne me reste plus qu'a trouver comment configurer codeblocks car si je mets un chemin relatif , il y aura confusion.
Je vois pas trop comment gérer çà avec cet IDE.
Je ne connais pas code block mais je sais que dans tous les IDE un temps soit peu sérieux, il y a possibilité dans les options du projet de modifier le répertoire de travail. Autrement, rien ne t'empêche de modifier celui ci par programmation, voir chdir() et fchdir().
Hors ligne
Pages : 1