Problem s FIFO (mirne OT)

Michal Krause mike na navrcholu.cz
Středa Červen 9 14:50:23 CEST 1999


Dne 9. 6. 1999 Petr Novotny napsal:

> > Slo o to, ze jsem potreboval cist data po radcich (fgets()) a nesmely se
> > mi nikdy pomotat data z vice zapisujicich procesu. Mozna, ze by slo pouzit
> > trochu jinou organizaci dat z CGI a spolehnou na to, ze data se vejdou do
> > pipe bufferu, pak by mely byt operace atomicke, ale z nejakeho duvodu jsem
> > to zavrhl. Abych pravdu rekl, uz nevim proc, psal jsem to asi pred rokem.
> 
> Moment, neni nekde (POSIX?) zaruceno, za zapisy write() do roury 
> po nejakou velikost jsou atomicke? Dokonce jsem si i myslel, ze 
> by to mohlo byt 512 bytu. Netusim, kde jsem to cetl :-(

No vzdyt o kousek vys pisu, ze jsem to z nejakeho duvodu zamitnul. Tenkrat
jsem s tim udelal dost testu a neco me vedlo k tomu, ze jsem to nepouzil. 
Ale kdybych se rozkrajel, netusim co to bylo :(

Zacinam ted vazne premyslet o tom, ze udelam novou serii testu, protoze to 
by muj problem vyresilo.

Jinak velikost toho bufferu neni pokud vim dana POSIXem, ale zjistuje se
pomoci

pathconf(path, _PC_PIPE_BUF)

resp.

fpathconf(file_descr, _PC_PIPE_BUF);

V Linuxu je to 4096 bajtu.

S pozdravem

Michal Krause                                                      /\
ICQ: 7665279            Informace (nejenom) ze sveta Linuxu     /\/  \
email: mike na navrcholu.cz ______ http://www.root.cz/ ______ NAVRCHOLU.cz

There are three kinds of lies: lies, damn lies, and benchmarks.
                                                         Jeremy Allison


Další informace o konferenci Linux