Как узнать, какие программы поддерживают потоковый ввод-вывод

Насколько я понимаю, программы, поддерживающие потоковый ввод-вывод, могут работать с файлами больше, чем размер памяти. Это верно?

Есть ли способ узнать, какие программы поддерживают потоковый ввод-вывод?

  • Как я могу дифференцировать диск ввода-вывода, явно выполняемый пользователем и предварительной выборкой ОС?
  • Перенаправление ввода с использованием команды и параметров
  • Запись оболочки для интерактивных команд
  • / dev / sda не появляется после безопасного удаления
  • Какие корневые пути должны находиться на быстрых носителях?
  • Должен ли я попытаться избавиться от «несоответствующего ioctl для устройства» в выводе strace для сценария Bash?
  • почему blktrace только пишет блоки из 8?
  • Невозможно переформатировать карту Micro SD
  • One Solution collect form web for “Как узнать, какие программы поддерживают потоковый ввод-вывод”

    если программа поддерживает потоковый ввод-вывод, она может работать с файлами больше, чем размер памяти, верно ли это

    Обычно да, но не обязательно. Представьте себе программу, такую ​​как uniq но более сложную, которая подсчитывает количество вхождений каждой уникальной строки, которую она получает на своем входе. В отличие от uniq он выводит общее количество ожидаемых показов. Поэтому он считается потоковой передачей, потому что он производит выход постепенно, он получает вход. Но если каждая строка ввода уникальна или близка к ней, она должна помнить каждую другую строку в структуре данных, чтобы поддерживать количество запусков, и на самом деле она не сможет обрабатывать файл, который больше, чем память.

    Также есть ли способ узнать, какие программы поддерживают потоковый ввод-вывод?

    Нет, если это не задокументировано или если вы не можете проверить это самостоятельно, нет, потому что это зависит от того, что делает программа.

    Однако вы можете сделать что-то близкое: вы можете проверить, нужен ли программе входной файл для поиска. Некоторые программы принимают в качестве входных данных любой канал или обычный файл (или сокет или что-то еще). Другие могут принимать только обычный файл. Если программа настаивает на регулярном, доступном для поиска файле, то есть хороший шанс, что он не выполняет никаких потоков. Если он позволяет использовать трубу в качестве входного сигнала, тогда есть хороший шанс. Но есть исключения. Например, sort позволяет использовать канал в качестве входного сигнала, но он не выполняет потоковое вещание: он выводит только что-либо после окончания ввода.

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