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. �
     

Répondre à