Fonction Write n'écrit pas
Bonjour à tous,
Je dois optimisez un programme en C. Mon programme s'exécute sous unix sous la forme suivante:
./monprogramme < fichierEntree > fichierSortie
Exemple de fichier d'entrée:
10
25
100
0
Exemple de fichier de sortie:
1
4
16
J'ai choisi de lire le fichier avec la fonction fgets et d'écrire avec la fonction write (je suis obligé d'écrire avec la fonction write).
Attention les fichiers d'entrée et sortie étant insérés comme des flux, il n'y a donc pas d'ouverture de fichier.
Lecture
Code:
1 2 3 4 5 6 7 8 9
| while (n != 0)
{
fgets(line, sizeof line, stdin); // lecture de toute un ligne
sscanf(line, "%d", &n); // on stock la ligne dans un entier
if (n == 0) break; // Sortir sans faire le calcul pour n = 0
clean(line); // On vide le buffer de fgets
Cal();
}; |
Après vérification la variable n se remplit correctement.
Dans la fonction Cal se trouve un entier que j'aimerais écrire.
Ecriture
Code:
1 2 3
| int tri;
// calcul de tri
write(1, &tri, sizeof tri); |
En revanche, aucune écriture ne se réalise.
Merci infiniment, je n'ai plus d'idée, j'ai l'impression d'avoir tout essayé...