Ainsi parla gaetan cottron le 057ème jour de l'an 2004: > Le Jeudi 26 Février 2004 16:49, Nicolas Rueff a écrit : > > Ainsi parla gaetan cottron le 057ème jour de l'an 2004: > ... > > > > « open [et creat] renvoient le nouveau descripteur de fichier > > s'ils réussissent, ou -1 s'ils échouent, auquel cas errno contient > > le code d'erreur. » > > > > J'ai bien compris pour le -1, c'est plus pour le 3 que j'ai du mal.
C'est tout simplement un index vers le fichier que tu viens d'ouvrir (utilisé par la suite pour faire référence à ce fichier). Dans les programmes classiques (disons des trucs à la ligne de commande), en général 3 descripteurs de fichiers sont déjà ouverts: #0 => stdin (lecture des entrées clavier) #1 => stdout (écriture à l'écran) #2 => stderr (écriture des erreurs, à l'écran) Donc en lançant un prog, #0, #1 et #2 étant déjà pris, le premier fichier ouvert obtient le #3, le second le #4, ... (bon, en fait il existe quelques subtilités, mais le principe est là). > > Les premiers appels à des libtrucs sont faits au chargement de > > l'exécutable qui tente de trouver les bibliothèques liées à ton > > application. Il essaie de les charger (en essayant dans plusieurs > > endroits "standards") , mais le fait qu'il ne les trouve pas n'est > > pas forcément une erreur, tant qu'au final il en trouve au moins une > > correspondante (chaipas si j'ai été clair, là;). Bon, bref, c'est > > pas grave. > > > > OK, oui c'est claire (du moins pour moi). Une autre petite chose du > coup, il tente sur 2 fichiers de faire : > access("/chemin/nom_fichier", F_OK) > Les 2 fois ça renvoie -1, est ce normal qu'il ne tente pas sur un 3e, > est ce que ça pourrait valider l'erreur sur cette absence. Non: les appels à access() (qui vérifie l'existence d'un fichier dans ce cas) sont faits au chargement de l'exécutable, à chaque fois qu'il a besoin d'une bibliothèque partagée. De ton point de vue, le programme ne commence qu'à partir de la ligne 20 (ce n'est pas toujours valable). > P.S. : > > Je finis avec le fichier complet de strace ( strace -o imprimante.txt > cat gaziniere.txt | lpr [EMAIL PROTECTED] -V ) : [SNIP] hem, c'est le strace du cat que tu viens de fournir ... un " strace -o imprimante.txt lpr [EMAIL PROTECTED] -V < gaziniere.txt " me paraît déjà plus adapté ;) -- Nicolas Rueff · Montbéliard · France · http://rueff.homelinux.org (^> [EMAIL PROTECTED] · GPG 0xDD44DAB4 /v\ Jabber [EMAIL PROTECTED] · ICQ 97700474 <__/ « We are Penguin. Resistance is futile. You will be assimilated. »