Sujet : Re: Problèmes bizarres de lecture dans un pipe (en C).
De : om+news (at) *nospam* miakinen.net (Olivier Miakinen)
Groupes : fr.comp.os.linux.configurationDate : 13. Dec 2022, 20:53:29
Autres entêtes
Organisation : There's no cabale
Message-ID : <tnahn9$k89$1@cabale.usenet-fr.net>
References : 1 2 3
User-Agent : Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:60.0) Gecko/20100101 Firefox/60.0 SeaMonkey/2.53.1
Le 13/12/2022 à 19:38, j'écrivais :
Un exemple minimal, pas vraiment, mais oui je peux montrer un strace.
En fait je peux même montrer une analyse minimale d'un strace qui
n'était pas du tout minimal.
Dans les traces qui suivent, j'ai supprimé tout que ce n'est pas un
write(8, ...) du fils ou un read(7, ...) du père, et j'ai réordonné
les lignes pour que chaque read() suive le write() correspondant,
mais j'ai laissé le numéro de ligne de la trace d'origine. On voit
donc en premier le numéro de ligne (de 253 à 334), en second le
PID (4955 pour le père, 4956 pour le fils), puis le read ou le
write avec les premiers octets en hexadécimal.
[...]
Après nettoyage, les traces sont encore plus claires (mais ce sont les
mêmes) :
253 4956 write(8, "\x0d\x00\x00\x00\x02\x00\x00\x00\x50\x00"..., 128) = 128
256 4955 read(7, "\x0d\x00\x00\x00\x02\x00\x00\x00\x50\x00"..., 16376) = 128
263 4955 write(6, "\x01\x00\x00\x00\x03\x00\x00\x00\xf8\x00"..., 248) = 248
265 4956 read(5, "\x01\x00\x00\x00\x03\x00\x00\x00\xf8\x00"..., 16376) = 248
271 4956 write(8, "\x09\x00\x00\x00\x01\x00\x00\x00\xb8\xce"..., 4096) = 4096
278 4955 read(7, "\x09\x00\x00\x00\x01\x00\x00\x00\xb8\xce"..., 16376) = 4096
272 4956 write(8, "\x01\x00\x00\x00\xa0\xc6\xee\x61\x02\x00"..., 4096) = 4096
287 4955 read(7, "\x01\x00\x00\x00\xa0\xc6\xee\x61\x02\x00"..., 12280) = 4096
274 4956 write(8, "\x34\x34\x2e\x30\x00\x00\x00\x00\x0c\x00"..., 4096) = 4096
299 4955 read(7, "\x34\x34\x2e\x30\x00\x00\x00\x00\x0c\x00"..., 8184) = 4096
276 4956 write(8, "\x28\x00\x00\x00\x00\x00\x00\x00\x01\x00"..., 4096) = 4096
313 4955 read(7, "\x28\x00\x00\x00\x00\x00\x00\x00\x01\x00"..., 4088) = 4088
279 4956 write(8, "\x02\x00\x00\x00\x04\x00\x00\x00\x34\x33"..., 4096) = 4096
332 4955 read(7, "\x02\x00\x00\x00\x04\x00\x00\x00\x34\x33"..., 16384) = 4096
-- Olivier Miakinen