Fopen(...,"a") ne crée pas le fichier [Résolu]

guiltyspark 29 Messages postés mardi 24 février 2009Date d'inscription 10 juillet 2009 Dernière intervention - 9 juil. 2009 à 15:00 - Dernière réponse : hl037 3 Messages postés dimanche 15 novembre 2009Date d'inscription 10 avril 2016 Dernière intervention
- 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 ;)
Afficher la suite 

14 réponses

Répondre au sujet
BunoCS 13773 Messages postés lundi 11 juillet 2005Date d'inscription 24 avril 2018 Dernière intervention - 9 juil. 2009 à 15:33
+3
Utile
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...
Cette réponse vous a-t-elle aidé ?  
Commenter la réponse de BunoCS
guiltyspark 29 Messages postés mardi 24 février 2009Date d'inscription 10 juillet 2009 Dernière intervention - 10 juil. 2009 à 12:58
+1
Utile
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 !!!
Commenter la réponse de guiltyspark
guiltyspark 29 Messages postés mardi 24 février 2009Date d'inscription 10 juillet 2009 Dernière intervention - 9 juil. 2009 à 15:07
0
Utile
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é ^^
Commenter la réponse de guiltyspark
BunoCS 13773 Messages postés lundi 11 juillet 2005Date d'inscription 24 avril 2018 Dernière intervention - 9 juil. 2009 à 15:19
0
Utile
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...
Commenter la réponse de BunoCS
guiltyspark 29 Messages postés mardi 24 février 2009Date d'inscription 10 juillet 2009 Dernière intervention - 9 juil. 2009 à 15:23
0
Utile
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 ^^
Commenter la réponse de guiltyspark
guiltyspark 29 Messages postés mardi 24 février 2009Date d'inscription 10 juillet 2009 Dernière intervention - 9 juil. 2009 à 15:55
0
Utile
Déjà fait un scan complet de l'ordinateur, aucun debug.txt :/...
Commenter la réponse de guiltyspark
BunoCS 13773 Messages postés lundi 11 juillet 2005Date d'inscription 24 avril 2018 Dernière intervention - 9 juil. 2009 à 16:21
0
Utile
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...
Commenter la réponse de BunoCS
abandonware 1 Messages postés samedi 4 juillet 2009Date d'inscription 9 juillet 2009 Dernière intervention - 9 juil. 2009 à 22:11
0
Utile
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=-
Commenter la réponse de abandonware
cs_Chouchou182 252 Messages postés vendredi 13 juin 2003Date d'inscription 25 avril 2011 Dernière intervention - 9 juil. 2009 à 23:01
0
Utile
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,
Commenter la réponse de cs_Chouchou182
Pistol_Pete 1055 Messages postés samedi 2 octobre 2004Date d'inscription 9 juillet 2013 Dernière intervention - 10 juil. 2009 à 08:33
0
Utile
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
Commenter la réponse de Pistol_Pete
guiltyspark 29 Messages postés mardi 24 février 2009Date d'inscription 10 juillet 2009 Dernière intervention - 10 juil. 2009 à 11:17
0
Utile
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 :)
Commenter la réponse de guiltyspark
BunoCS 13773 Messages postés lundi 11 juillet 2005Date d'inscription 24 avril 2018 Dernière intervention - 10 juil. 2009 à 11:41
0
Utile
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...
Commenter la réponse de BunoCS
BunoCS 13773 Messages postés lundi 11 juillet 2005Date d'inscription 24 avril 2018 Dernière intervention - 10 juil. 2009 à 13:23
0
Utile
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...
Commenter la réponse de BunoCS
hl037 3 Messages postés dimanche 15 novembre 2009Date d'inscription 10 avril 2016 Dernière intervention - 22 mars 2010 à 22:42
0
Utile
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)!
Commenter la réponse de hl037

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.