[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: [port parallele] Probleme de detection



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 -Pljet3@knop -V ) :

[SNIP]

hem, c'est le strace du cat que tu viens de fournir ... un

" strace -o imprimante.txt lpr -Pljet3@knop -V < gaziniere.txt "

me paraît déjà plus adapté ;)


-- 
      Nicolas Rueff · Montbéliard · France · http://rueff.homelinux.org
 (^>        nicolas@rueff.homelinux.org · GPG 0xDD44DAB4
 /v\           Jabber rueff@jabber.org · ICQ 97700474
<__/  « We are Penguin. Resistance is futile. You will be assimilated. »
     



Reply to: