Re: [port parallele] Probleme de detection
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.
>
> 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.
P.S. :
Je finis avec le fichier complet de strace ( strace -o imprimante.txt cat
gaziniere.txt | lpr -Pljet3@knop -V ) :
execve("/bin/cat", ["cat", "gaziniere.txt"], [/* 16 vars */]) = 0
uname({sys="Linux", node="knop", ...}) = 0
brk(0) = 0x804c78c
old_mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) =
0x40017000
access("/etc/ld.so.nohwcap", F_OK) = -1 ENOENT (No such file or
directory)
open("/etc/ld.so.preload", O_RDONLY) = -1 ENOENT (No such file or
directory)
open("/etc/ld.so.cache", O_RDONLY) = 3
fstat64(3, {st_mode=S_IFREG|0644, st_size=51846, ...}) = 0
old_mmap(NULL, 51846, PROT_READ, MAP_PRIVATE, 3, 0) = 0x40018000
close(3) = 0
access("/etc/ld.so.nohwcap", F_OK) = -1 ENOENT (No such file or
directory)
open("/lib/libc.so.6", O_RDONLY) = 3
read(3, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0\3\0\1\0\0\0`^\1\000"..., 512) =
512
fstat64(3, {st_mode=S_IFREG|0644, st_size=1243076, ...}) = 0
old_mmap(NULL, 1253316, PROT_READ|PROT_EXEC, MAP_PRIVATE, 3, 0) = 0x40025000
old_mmap(0x4014c000, 36864, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED, 3,
0x126000) = 0x4014c000
old_mmap(0x40155000, 8132, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|
MAP_ANONYMOUS, -1, 0) = 0x40155000
close(3) = 0
munmap(0x40018000, 51846) = 0
open("/usr/lib/locale/locale-archive", O_RDONLY|O_LARGEFILE) = 3
fstat64(3, {st_mode=S_IFREG|0644, st_size=17585632, ...}) = 0
mmap2(NULL, 2097152, PROT_READ, MAP_PRIVATE, 3, 0) = 0x40157000
mmap2(NULL, 28672, PROT_READ, MAP_PRIVATE, 3, 0x2a7) = 0x40018000
brk(0) = 0x804c78c
brk(0x806d78c) = 0x806d78c
brk(0) = 0x806d78c
brk(0x806e000) = 0x806e000
mmap2(NULL, 212992, PROT_READ, MAP_PRIVATE, 3, 0x499) = 0x40357000
mmap2(NULL, 4096, PROT_READ, MAP_PRIVATE, 3, 0x503) = 0x4001f000
close(3) = 0
fstat64(1, {st_mode=S_IFIFO|0600, st_size=0, ...}) = 0
open("gaziniere.txt", O_RDONLY|O_LARGEFILE) = 3
fstat64(3, {st_mode=S_IFREG|0644, st_size=3609, ...}) = 0
read(3, " -------------------------------"..., 4096) = 3609
write(1, " -------------------------------"..., 3609) = 3609
read(3, "", 4096) = 0
close(3) = 0
close(1) = 0
exit_group(0) = ?
Reply to: