guiltyspark
Messages postés29Date d'inscriptionmardi 24 février 2009StatutMembreDernière intervention10 juillet 2009
-
9 juil. 2009 à 15:00
hl037
Messages postés3Date d'inscriptiondimanche 15 novembre 2009StatutMembreDernière intervention10 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...
guiltyspark
Messages postés29Date d'inscriptionmardi 24 février 2009StatutMembreDernière intervention10 juillet 20091 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 ^^
guiltyspark
Messages postés29Date d'inscriptionmardi 24 février 2009StatutMembreDernière intervention10 juillet 20091 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 ^^
BunoCS
Messages postés15489Date d'inscriptionlundi 11 juillet 2005StatutModérateurDernière intervention19 septembre 2024103 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...
cs_Chouchou182
Messages postés252Date d'inscriptionvendredi 13 juin 2003StatutMembreDernière intervention25 avril 20111 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.
Pistol_Pete
Messages postés1053Date d'inscriptionsamedi 2 octobre 2004StatutMembreDernière intervention 9 juillet 20137 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
guiltyspark
Messages postés29Date d'inscriptionmardi 24 février 2009StatutMembreDernière intervention10 juillet 20091 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 :/...
hl037
Messages postés3Date d'inscriptiondimanche 15 novembre 2009StatutMembreDernière intervention10 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)!