Что такое «блокировка» в отношении ввода-вывода файлов?

Мой учебник упоминает об этом, но конкретно не определяет его. Из контекста, который он использует в (в этом примере, в трубах), я полагаю, что если один конец блоков канала, то он временно «отключен», если вы захотите, и данные будут поставлены в очередь? Это та часть, о которой я немного смущен. Когда он «блокирует», делает (что бы это ни было), подождите, пока он не будет разблокирован, а затем продолжит все, что было отправлено, когда оно было заблокировано? Кажется, это то, о чем они намекают, потому что они говорят, что когда он «не блокирует», он немедленно возвращает ошибку (если я правильно помню). Любые разъяснения или подталкивания в правильном направлении оцениваются. Благодаря!

(Не знаете, какие теги использовать)

2 Solutions collect form web for “Что такое «блокировка» в отношении ввода-вывода файлов?”

Блокирующий вызов будет возвращаться, когда имеются данные (и дождаться указанных данных), неблокирующий вызов вернет данные, если есть данные для возврата, в противном случае возвращается ошибка, говорящая, что нет данных (но всегда возвращается «немедленно» после того, называется).

Независимо от того, используете ли вы одно или другое, зависит от того, что вы хотите сделать – если вы хотите получить эти данные, и вам больше нечего делать, вы просто вызываете блокирующий вызов. Но иногда вы хотите сделать что-то еще, если данных пока нет.

См. Также select() , швейцарский нож POSIX для «есть ли какие-либо данные?» вид звонков, включающий блокированные вызовы нескольких дескрипторов файлов, которые могут быть синхронизированы (поэтому, если в течение пяти минут нет ввода, вы можете вернуть его с ошибкой).

Если операция ввода-вывода блокируется, то инициированный ею вызов функции / системы не будет возвращать управление процессу / нить, пока не будет прочитано или записано соответствующее количество данных.

  • Как проверить, была ли ISO записана на мой USB-накопитель без ошибок?
  • Повреждение файловой системы Linux из-за неправильного завершения работы (fs ext4)?
  • dd для клонирования с меньшим sdcard
  • Почему мой загрузочный раздел Pandaboard должен быть vfat, а rootfs должен быть ext3 или ext4?
  • файловая система для архивирования
  • Общие домашние каталоги с локальным дублированием
  • Что такое securityfs?
  • В системной памяти ... в частности, разница между `tmpfs,` `shm,` и `hugepages ...`
  • Какие файловые системы Linux для USB-накопителей?
  • Установка Android-x86 на USB (не создание Live USB)?
  • Тестирование файловой системы ext3 на встроенном устройстве
  • Interesting Posts

    Как заставить устройство монтироваться как хранилище для массовых коммуникаций (MMS), а не протокол передачи мультимедиа (MTP)?

    Разделение файлов в Unix с использованием значений в файле

    Как показать рабочий стол при удаленном доступе к Debian?

    Сервер Debian не отображается в списке DHCP на маршрутизаторе

    Записи Я могу безопасно исключить выполнение резервных копий

    Предоставить привилегии на MariaDB?

    Как изменить ZFS на Linux на CentOS

    Установка пакетов Debian как непривилегированного пользователя

    Использование netcat для запуска программы?

    Передача файлов из AIX в Windows – проблемы с CR и LF (управляющие символы)

    dhcpcd не может запускаться при загрузке

    Как переписать каталог в новый каталог с другим именем?

    Stderr сценариев оболочки с трубкой не всегда отображается

    tput комплект таблица цветов? Как определить цветовые коды?

    Как удалить драйвер, когда apt-get remove завершился с ошибкой?

    Linux и Unix - лучшая ОС в мире.