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

Ad van den Broek advandenbroek.nl op gmail.com
Za mei 23 17:00:50 CEST 2009


Dag J. ?!?

>> 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 ;-)


-- 

With best regards,
Ad van den Broek



More information about the Linux mailing list