fprintf

  • Créateur du sujet Créateur du sujet vibra
  • Date de début Date de début

vibra

Membre actif
5 Décembre 2007
110
0
Bonjour,
J'ai un mac os X, et j'utilise Xcode pour programmer en C.
La ligne ci-dessous :
Bloc de code:
fprintf(stderr, "Erreur")
est censée me marquer "Erreur" dan un fichier appelé stderr.txt. Le problème est que je n'arrive pas à savoir dans quel dossier il se crée (d'ailleur j'ai l'impression qu'il ne se cré pas).
Faut-il le créer avant ?
Bref pourriez vous m'éclairer SVP ?
 
Oui il faut créer ton fichier et lui donner les droits en écritures, par exemple :

Bloc de code:
FILE *errorFile = fopen("fileName", "w");

if(errorFile != NULL){
    fprintf(errorFile, "Message");

    // traitements 
    //penser à fermer le fichier
   fclose(errorFile);


}else{
    //message d'erreur si nécessaire
    exit(1);
}

PS: pas taper Tatouille pour mon code de gros naab, car j'en suis un ! :)
 
stderr c'est la sortie d'erreur à priori... pas un fichier, enfin oui et non, bref, me semble que par défaut ça va au même endroit que la sortie standard, ça s'affiche à l'écran... Tu peux essayer de lancer ton programme en faisant suivra la commande de lancement de " 2 > erreur.txt".
Par exemple : ./monProgramme 2 > erreur.txt
Ça devrait te rediriger la sortie d'erreur vers le fichier indiqué.
J'espère que je dis pas de conneries, je fais plus trop de C ces temps ci. ;)
 
  • J’aime
Réactions: vibra
Effectivement si tu le lances par x-code, tu vois peut-être pas comment il exécute le programme. Tu dois pouvoir lui ajouter ça en paramètre mais je m'en suis pas servis depuis des siècles donc je sais pas comment.
2 > ça redirige le flux d'erreur (2 représente ce flux) vers le fichier que tu lui indiques.
Un programme ça reçoit des données en entrée (sur stdin), ce que tu saisis au clavier, et ça renvoie deux flux : la sortie standard stdout qui s'affiche à l'écran, et stderr qui est la sortie d'erreur. Donc il faut lui dire où tu veux qu'elle aille. Tu peux par exemple faire 2 > &1 pour la renvoyer sur la sortie standard ou ce qui t'intéresse, l'envoyer dans un ficher.
 
Effectivement si tu le lances par x-code, tu vois peut-être pas comment il exécute le programme. Tu dois pouvoir lui ajouter ça en paramètre mais je m'en suis pas servis depuis des siècles donc je sais pas comment.

Dans le projet XCode, repere la section "Executables" et clique sur l'icone de ton appli.
Puis, fait info, et choisit l'onglet "Arguments"

Cordialement
 
Ok, j'y suis, et le "2 > erreur.txt" il faut le mettre dans "arguments to be passed on launch" ou dans "variable to be set in the environnement" ?
 
Ok, j'y suis, et le "2 > erreur.txt" il faut le mettre dans "arguments to be passed on launch" ou dans "variable to be set in the environnement" ?

D'apres toi ?
Pour moi c'est plutot dans les arguments.
Mais je n'ai pas essayé les redirections sur les flux dans ce contexte.


Cordialement