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

Re: named-pipes et limite de volume de données [was: cat /dev/xconsole qui meurt]




(ma réponse est à prendre avec quelques pincettes, je ne peux pas vérifier en détail mes dires pour le moment).

Seb a écrit :
Seb a écrit :

Seb a écrit :

J'ai relancé "xconsole -file /dev/xconsole", je le laisse tourner.



Il n'a pas planté depuis mon dernier post. Le cat habituel, quant à lui, serait déja mort...


J'ai un peu cherché sur le web et expérimenté sur ma machine. Les résultats me laissent perplexe...

Selon ce que j'ai trouvé sur le web, il existe un volume de données limite que peut laisser passer (ou bien retenir jusqu'à ce qu'on la lise, je n'ai pas très bien saisi) une named-pipe. Cette valeur est définie dans /usr/src/linux/include/linux/limits.h :

   #define PIPE_BUF        4096    /* # bytes in atomic write to a pipe */

Il doit s'agir là de la taille du tampon d'écriture ou de lecture. Le bon sens nous incite à penser cela, car 4ko, c'est vraiment très peu; ton message fait déjà 8ko.

Ceci expliquerait donc que "cat /dev/xconsole" s'arrête tout seul. Je vérifie donc le volume de données écrit suite à un plantage :

   cat /dev/xconsole > test1

lorsqu'il s'arrête :

   du -h test1
      4,0k

ça se tient, mais voila, sous krusader, konqueror et nautilus, test1 occupe en fait 540 octets, idem pour ls -l...

En fait, ce que tu observes est la taille de l'objet 'pipe'. Regarde sous /dev, tu devrais observer que nombre des fichiers présents ici ont des tailles de cet ordre de grandeur. Il est possible que tu obtiennes des résultats différents, parce que bien que ton pipe fasse moins de 4ko, l'élément le plus petit de ton système de fichier est 4ko.

   cat /dev/xconsole > test2

test2 atteint les 4ko et le "cat /dev/xconsole" tourne toujours. Afin de le remplir rapidement, je lance dans une console root :

   cat test2 > /dev/xconsole

et ce plusieurs fois.

Résultat pour le moins surprenant, le cat tourne toujours au moment où j'écris ces lignes et test2 occupe... 753,2Mo selon Nautilus, konqueror, krusader, ls et du qui, concernant ce fichier tombent tous d'accord.

Quelqu'un aurait une explication ?

Merci.

Seb



--
David



Reply to: