[sisyphus] Q: read()/write() operations of exact size

Kirill A. Shutemov kirill на shutemov.name
Сб Янв 16 00:25:02 UTC 2010


2010/1/16 Michael Pozhidaev <msp at altlinux.ru>:
> Привет всем!
>
> Вот два симметричных вопроса: предположим надо по трубе записать и
> прочитать некоторую структуру известного размера, как сделать так, чтобы
> быть уверенным, что она запишется сразу полностью и прочитается сразу
> полностью?
>
> Насчёт прочитать наткнулся на ioctl(fd, FIONREAD), который говорит,
> сколько данных доступно для чтения. Как быть уверенным, что ядро не
> захочет писать структуру из, скажем , семи байт порциями по два-три
> байта? ННеохота каждый write() оборачивать в цикл. Ну уж как-то это
> очень коряво получается.

Перечитайте man 2 read и man 2 write ещё раз и напишите себе обёртки,
которые делают всё что вы хотите.


Подробная информация о списке рассылки Sisyphus