Fonction system open() sous linux.

Résolu
Signaler
Messages postés
518
Date d'inscription
dimanche 2 décembre 2001
Statut
Membre
Dernière intervention
10 novembre 2007
-
Messages postés
518
Date d'inscription
dimanche 2 décembre 2001
Statut
Membre
Dernière intervention
10 novembre 2007
-
Bonjour, j'écris un ptit programme qui simule "ls -l | wc -l > baba" et donc compte le "nombre de fichiers" contenu dans le répertoire courant puis écrit ce nombre dans un autre fichier.
Le problème c'est que le nombre écrit dans le fichier a une unité de plus car j'ouvre le fichier "baba" dans le programme ce qui créer "baba" et donne un résultat égal a "nombre de fichiers + 1".
J'aimerais savoir s'il est possible qu'un fichier ouvert avec open() soit créé seulement sa fermeture ?

Merci.

3 réponses

Messages postés
518
Date d'inscription
dimanche 2 décembre 2001
Statut
Membre
Dernière intervention
10 novembre 2007
3
Nom, en fait c'est bon, en fait je fais un processus pour chaque commande, le truc c'est juste qu'il faut que j'attente la fin des processus de la commande "ls -l | wc -l" avant de faire mon open.
Merci.
Bouba
Messages postés
6535
Date d'inscription
lundi 16 décembre 2002
Statut
Modérateur
Dernière intervention
22 août 2010
10
Yu ne devrais pas appeler baba avec open, il va se créer tout seul. Et normalement, le comptege sera terminé et le fichier créé ensuite (de même que wc ne sera exécuté que quand ls sera terminé)
Messages postés
518
Date d'inscription
dimanche 2 décembre 2001
Statut
Membre
Dernière intervention
10 novembre 2007
3
Hum, bizarre ce que tu me dis la, "baba" va se créer tout seul ? mais par quel miracle ? Je simule le fonctionnement du bash, si le fichier bab n'existe pas il faut bien qu'il soit créé quelque part dans mon code, de plus il faut bien que je réalise la redirection, comment pourais-je indiquer une redirection vers le fichier "baba" dans mon code s'il n'est pas créé et rien n'y fait référence ???