Когда и как блоки чтения / записи (т.е. приостановка вашей программы) для разных типов файлов? - PullRequest
0 голосов
/ 30 октября 2011

Я думаю, что мне не ясно, когда и как блоки чтения / записи для различных типов файлов. (дисковый файл, канал, сокет, FIFO)

Может ли кто-нибудь объяснить сценарии чтения и записи для каждого типа файла?

Спасибо !!

1 Ответ

2 голосов
/ 30 октября 2011

Для файлов на диске read и write могут кратковременно блокироваться во время выполнения запрошенного чтения / записи.read в конце файла всегда будет возвращать короткий результат, а write к файлу на полной ФС не удастся - исключая различные необычные обстоятельства, read / write - к простому файлуникогда не блокировать бесконечно.

Для каналов, сокетов и FIFO read будет блокироваться, если данные недоступны, и write будет блокироваться, если труба / сокет / FIFO заполнена (например, , вы написали кучу данных, а процесс на другом конце еще не прочитал их).Точный объем данных, необходимых для заполнения буфера, является переменным;например, для трубы она обычно составляет от 4 до 64 кБ.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...