Fopen(...,"a") ne crée pas le fichier

Résolu
guiltyspark Messages postés 29 Date d'inscription mardi 24 février 2009 Statut Membre Dernière intervention 10 juillet 2009 - 9 juil. 2009 à 15:00
hl037 Messages postés 3 Date d'inscription dimanche 15 novembre 2009 Statut Membre Dernière intervention 10 avril 2016 - 22 mars 2010 à 22:42
jour,

J'ai un problème avec fopen. Je l'utilise en mode append pour pouvoir créer le fichier s'il n'existe pas et écrire à la suite de celui-ci s'il existe déjà. Seulement voilà, si j'utilise un chemin relatif pour le créer (fopen("./debug.txt","a") ou même juste fopen("debug.txt","a")), le fichier n'est pas créé. Il n'est créé que si j'utilise un chemin absolu (fopen("H:\debug.tx","a")). Le soucis est que je dois pouvoir utiliser mon programme en chaine dans plusieurs dossiers et je dois donc créer mon debug.txt dans chacun de ces dossiers...

Pourriez-vous m'aider s'il vous plait ?

Merci d'avance ;)
A voir également:

14 réponses

BunoCS Messages postés 15489 Date d'inscription lundi 11 juillet 2005 Statut Modérateur Dernière intervention 19 septembre 2024 103
9 juil. 2009 à 15:33
Avec fopen("debug.txt","a"), ça ne marche tout simplement pas ^^

--> ou bien ça ne crée pas le fichier où tu attends... regarde ton répertoire courant au moment où tu fais ton fopen()

@+
Buno
----------------------------------------
L'urgent est fait, l'impossible est en cours. Pour les miracles, prévoir un délai...
3
guiltyspark Messages postés 29 Date d'inscription mardi 24 février 2009 Statut Membre Dernière intervention 10 juillet 2009 1
10 juil. 2009 à 12:58
C'est bon j'ai trouvé !!!


Après un scan total du serveur du service de ma boîte, j'a trouvé que mon fichier était bien créé sur un serveur qui m'était caché en lecture (mais pas en écriture, allez comprendre), puisque c'est celui duquel mon invite de commande était lancé. La racine contenait bien un petit fichier debug.txt. Le mal est maintenant réparé et je peux continuer mon code ^^


 


Merci à tous pour votre aide !!!
1
guiltyspark Messages postés 29 Date d'inscription mardi 24 février 2009 Statut Membre Dernière intervention 10 juillet 2009 1
9 juil. 2009 à 15:07
Des coquilles se sont glissées dans mon précédent post :

- fopen(".\debug.txt","a") et non pas fopen("./debug.txt","a")

- fopen("H:\debug.txt","a") et non pas fopen("H:\debug.tx","a")

Et bien sûr : Bonjour, et non pas jour,

Désolé ^^
0
BunoCS Messages postés 15489 Date d'inscription lundi 11 juillet 2005 Statut Modérateur Dernière intervention 19 septembre 2024 103
9 juil. 2009 à 15:19
Hello,
Essaie plutôt ça:
.\debug.txt --> debug.txt tout court
H:\debug.txt --> H:\\debug.txt

@+
Buno
----------------------------------------
L'urgent est fait, l'impossible est en cours. Pour les miracles, prévoir un délai...
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
guiltyspark Messages postés 29 Date d'inscription mardi 24 février 2009 Statut Membre Dernière intervention 10 juillet 2009 1
9 juil. 2009 à 15:23
Ces coquilles, je ne les avais pas vues ^^

J'ai essayé déjà : avec fopen("H:\\debug.txt","a"), ca marche mais je voudrais passer un chemin relatif  pour pas que tous les fichiers soient créés au même endroit...

Avec fopen("debug.txt","a"), ça ne marche tout simplement pas ^^
0
guiltyspark Messages postés 29 Date d'inscription mardi 24 février 2009 Statut Membre Dernière intervention 10 juillet 2009 1
9 juil. 2009 à 15:55
Déjà fait un scan complet de l'ordinateur, aucun debug.txt :/...
0
BunoCS Messages postés 15489 Date d'inscription lundi 11 juillet 2005 Statut Modérateur Dernière intervention 19 septembre 2024 103
9 juil. 2009 à 16:21
Alors le problème est ailleurs car, avec l'option "a", fopen() crée le fichier s'il n'existe pas.
Possibilité:
- pas les droits d'écriture
- erreur dans le nom/chemin du fichier
- erreur à la fermeture de fichier

@+
Buno
----------------------------------------
L'urgent est fait, l'impossible est en cours. Pour les miracles, prévoir un délai...
0
abandonware Messages postés 1 Date d'inscription samedi 4 juillet 2009 Statut Membre Dernière intervention 9 juillet 2009
9 juil. 2009 à 22:11
fopen("adebug.txt","a+");

option 'a' signifies append ajoute les donners au fichier

 rajoute un plus + signifie rajoute des donners si il existe
sinon  le + plus cree un fichier si il existe pas...

-=Insane=-
0
cs_Chouchou182 Messages postés 252 Date d'inscription vendredi 13 juin 2003 Statut Membre Dernière intervention 25 avril 2011 1
9 juil. 2009 à 23:01
Salut,
D’après «man 3», "a+" c’est pour ouvrir le fichier en lecture également ; "a", comme "a+", crée le fichier s’il n’existe pas.
En cas d’erreur, fopen renvoie NULL et renseigne errno. «man 2 open» indique tout plein de sources d’échec.
Tu peux te servir de «perror» (stdio.h) pour afficher un message peut-être utile.

Bonne prog,
0
Pistol_Pete Messages postés 1053 Date d'inscription samedi 2 octobre 2004 Statut Membre Dernière intervention 9 juillet 2013 7
10 juil. 2009 à 08:33
Salut
Regarde le retour de la fonction fopen. Si c'est NULL, alors la fonction fopen a échoué.
A+
____________________________________________________________________________
Mon site internet :  
http://ImAnalyse.free.fr
0
guiltyspark Messages postés 29 Date d'inscription mardi 24 février 2009 Statut Membre Dernière intervention 10 juillet 2009 1
10 juil. 2009 à 11:17
Buno :
Possibilité:
- pas les droits d'écriture ->  Ben si vu que quand je fais fopen("H:\\debug.txt","a"), ça marche :/...
- erreur dans le nom/chemin du fichier -> Je ne vois pas comment je pourrais me planter là-dedans ...
- erreur à la fermeture de fichier -> il est bien fermé à la fin du programme vu que quand je mets le chemin en statique, ca fonctionne...

Chouchou182 :
J'ai aussi essayé avec a+ mais ca ne fonctionne pas non plus si je ne mets pas le chemin en absolu

Chouchou182 & Pistol_Pete :
Le retour de la fonction n'est pas NULL, j'ai tenté un perror si le retour était NULL mais rien ne s'affiche, j'en conclue que le fichier s'ouvre donc bien :/...

Merci de votre aide les gens :)
0
BunoCS Messages postés 15489 Date d'inscription lundi 11 juillet 2005 Statut Modérateur Dernière intervention 19 septembre 2024 103
10 juil. 2009 à 11:41
Postes-nous ton code, pour qu'on regarde exactement.
ça m'intrigue ton truc..

@+
Buno
----------------------------------------
L'urgent est fait, l'impossible est en cours. Pour les miracles, prévoir un délai...
0
BunoCS Messages postés 15489 Date d'inscription lundi 11 juillet 2005 Statut Modérateur Dernière intervention 19 septembre 2024 103
10 juil. 2009 à 13:23
Aahh...je savais bien que c'était un problème de path
N'oublie pas de cliquer sur "réponse acceptée" si ton problème est résolu

@+
Buno
----------------------------------------
L'urgent est fait, l'impossible est en cours. Pour les miracles, prévoir un délai...
0
hl037 Messages postés 3 Date d'inscription dimanche 15 novembre 2009 Statut Membre Dernière intervention 10 avril 2016
22 mars 2010 à 22:42
Alors, moi j'ai un probleme vraiment bizarre:
quad je fais mon fopen [..] fclose sans passer d'argument au prog, tout marche, mais dés que je pass en argument quoi que ce soit, le fichier ne veut plus s'enregistrer...
un prog tout con comme ça:
int main(int argc, char* argv[])
{
FILE *f;
f=fopen("test.txt");
fprintf(f,"Salut!");
fclose(f);
system("PAUSE");
return 0;
}
Merci de vos reponse(s)!
0
Rejoignez-nous