Re: fprintf && write
- From
- Lev Walkin ()
- To
- Valentin Nechayev ()
- Date
- 2003-06-05T10:46:52Z
- Area
- RU.UNIX.PROG
From: Lev Walkin <vlm@netli.com>
Valentin Nechayev wrote:
>>>>Lev Walkin wrote:
>
>
>>>1. Получить засыпание при вызове fprintf(...) где-то в ядре на write(..) на
>>>очень большое время, что увы неприемлимо.
>>>2. Использовать alarm(time), write()/fprintf(), alarm(0); - я получу 3
>>>системных вызова.
>
> LW> а попробуй так:
> LW> 1. при открытии дескриптора переводи его в non-blocking mode.
> LW> 2. В подобных твоему участках кода делай _сначала_ write(), а уж потом,
> LW> если write() вернул -1/EAGAIN, то select:
>
> Непонятно, нахрена тут select() вообще. Если объект неблокирующий,
> то просто писать пока буфер не опустошится, write() не скажет EAGAIN,
> или ошибка какая не вылезет. select() нужен или для гарантии неблокируемости
> последующего write() с O_NONBLOCK, или для выбора, а что же делать следующим.
> Блокируемость убрали, точки выбора нет - select() не нужен.
ему нужно было timeout сделать.
--
Lev Walkin
vlm@netli.com
--- ifmail v.2.15dev5
* Origin: Netli, Inc. (2:5020/400)