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