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

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

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

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

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

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

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

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

  • Встроенное устройство: как выполнять сырые чтения и запись на флэш (emmc / movinand) в обход кеша файловой системы
  • Хранить локальную копию монтирования nfs на компьютере
  • В чем разница между Linux и Linux LVM?
  • Как ускорить восстановление «застрявшей» cifs mount?
  • / bypass на ArchBang - безопасно удалить?
  • Значит ли порядок перегородок?
  • Мониторинг доступа к файлам пользователя
  • файловая система для архивирования
  • Как продлить второй раздел CentOS 5 в VMware
  • Что я должен установить в данный установочный префикс
  • Почему мой загрузочный раздел Pandaboard должен быть vfat, а rootfs должен быть ext3 или ext4?
  • Interesting Posts

    Как отобразить разрешение каталога без разрешения на их содержимое

    Открытие портов на Ubuntu 16.04.1

    Командная строка переключается на>, что это значит?

    Linux C / C ++ – любой способ создать «прозрачный» сокет SSL / TLS?

    Как разрешить обратные пространства в небуферизованном / неканоническом режиме?

    Не удалось запустить скрипт python – Отказано в разрешении

    Реализация балансировки нагрузки на любом дистрибутиве Linux

    Монтирование файловой системы exFAT как пользователя без указания / dev / sdX1 в / etc / fstab

    Разделите текстовый файл на несколько файлов, за пределы {99} лимита csplit

    Пользовательские имена хостов на / etc / hosts не разрешены

    Могу ли я сделать арифметику с комплексными числами в awk, и если да, то как?

    Использование apt-get в mac Terminal

    sed для удаления ведущего 91, если число равно 12 цифрам

    Быстрый и грязный способ выполнения процесса более одного раза

    Вымытые цвета с помощью программного обеспечения screencast, но не скриншот на Ubuntu (все версии)

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