[linux] Re: Gezocht: Function GetLength(EventQueue)

J. mailing-lists op xs4all.nl
Za mei 23 21:21:44 CEST 2009


On Sat, 23 May 2009, Ad van den Broek wrote:

> Dag J. ?!?

Yesss that's me.. Laat me raden :-)

> >> Sorry, ik bedoel hier een named pipe
> >> En dan wil ik dus eigenlijk weten in hoeverre deze vol zit.
> >
> > Het is alweer een tijd geleden dat ik mij met ipc heb bezig gehouden, maar
> > volgens mij kan dit gewoon niet betrouwbaar. Omdat je niet van te voren
> > weet hoe groot ieder stuk data is wat geplaatst wordt door 1
> > vd. processen. Daarom heb je dus verschillende manieren voor ipc. Met
> > iedere zijn voor en nadeel.
> > Op de vger kernel c-programming lijst kunnen ze je hier alles over
> > vertellen en zitten gozers die zich iedere dag hiermee bezig houden.
> > Wel netjes vragen :-)
> 
> Nou die raad heb ik opgevolgd en dat viel niet tegen...
> 
> Andrea Arcangeli (de man achter CPUshare.com en een kernel-developer van Linux)
> wist me te vertellen dat ik de PIPE_SIZE in Linux 2.4 niet kan
> vergroten omdat die max. PAGE_SIZE is
> en dat de max. PAGE_SIZE voor i386 4K is.
> 
> En Michael Kerrisk wist me te vertellen dat hij een patch gemaakt had
> voor Linux 2.4.
> om de PIPE_SIZE 1,2,4 of 8x PAGE_SIZE te kunnen maken
> En die patch vinden jullie op
> http://lse.sourceforge.net/pipe/2.4.9-pipe.patch
> and this patch is modified by Manfred Spraul which version can be found at
> http://linuxperf.sourceforge.net/patches/2.4.13-largepipe.patch
> 
> En op mijn oorspronkelijke vraag
> > ik bedoel hier een named pipe
> > En dan wil ik dus eigenlijk weten in hoeverre deze vol zit.
> 
> was de "heilige" Linus niet te beroerd om te antwoorden met:
> 
>     int bytes, err;
>     err = ioctl(fd, FIONREAD, &bytes);
> 
>     is the traditional UNIX way to query how many bytes are readable right now
>     in a pipe (or a socket or tty, for that matter).
> 
>     NOTE! There is _not_ a way to query how much you could write to a pipe,
>     though. Although normally I think you should be able to rely on being able
>     to write PIPE_BUF characters if a poll() or select() says “writable”. But
>     you may be able to write more.
> 
> Dus ik heb de indruk dat ik het _heel_ aardig gevraagd heb daar ;-)

Ik had 't al stiekem gehoord en gelezen :-)

Ik ben blij dat je verder geholpen bent. Een tijd lang diep in 't systeem
duiken kan echt heel verhelderend werken en je leert ook nog eens
veel leuke mensen kennen, die je normaal niet zo snel tegen het lijf loopt
omdat dat net de mensen zijn die zich vaak ver van het gepeupel
willen houden.

Dank voor de leuke terugkoppeling.

Cheers,

J.




More information about the Linux mailing list