Re: fprintf && write

From
Igor Sysoev ()
To
Boris Rudakov ()
Date
2003-06-05T13:02:18Z
Area
CARBON.COPY
 * Forwarded from area 'RU.UNIX.PROG'
From: Igor Sysoev <is@rambler-co.ru>

Boris Rudakov <Boris.Rudakov@p4.f9.n5054.z2.fidonet.org> wrote:

> Кста, чисто информации для: не знаю как в юниксах, а в НТе многие синхронные
> операции IO на самом деле - врапперы над асинхронными функциями API. Пример -
> сокеты. Ядро открывает сокеты всегда в асинхронном и только асинхронном режиме
> доступа. Если работать с ними основными функциями IO ReadFile/WriteFile, но не
> передавать структуру OVERLAPPED (она служит для контроля асинхронного IO и если
> вместо нее подсовывать NULL то это означает что ты желаешь чтобы вызов был
> блокирующим) то система говорит ERROR_INVALID_PARAMETER - иди, мол, лесом.
> OVERLAPPED давай. Экспериментально установлено что НТевые реализации send/recv
> - примитивнейшие врапперы над ReadFile/WriteFile, внутри ожидающие завершения
> асинхронного IO над сокетами.

Теперь мне понятно почему, если в NT попросить sendv() или WSASend() послать,
скажем, 4M в неблокирующийся сокет, они спокойно скопируют все 4M в ядро
и сразу же вернутся, сказав, что передали все 4M.


-- 
Игорь Сысоев
http://sysoev.ru
--- ifmail v.2.15dev5
 * Origin: Rambler Office news site (2:5020/400)