извлечь выгоду из использования systemu вместо open3?

На странице systemu говорится:

systemu может использоваться на любой платформе для возврата статуса, stdout и stderr любой команды. в отличие от других методов, таких как open3/popen4, существует нулевая опасность полных труб или проблем с потоками, зависящих от вашего процесса или подпроцесса.

(Https://github.com/ahoward/systemu)

Может ли кто-нибудь объяснить это немного?

3

1 ответы

Способы как всплывающие окна и его различные промежутки являются удобными и являются частью ожидаемого API для полной библиотеки ввода-вывода.

Однако они должны использоваться как случайно, так и осторожно, поскольку они подвержены тупиковой ситуации. Случайно, я имею в виду, если вы оба пишете и читаете из команды, все равно, пока вы либо не много пишете, либо не читаете много. Тщательно, я имею в виду, вы можете перемещать большие объемы данных, но только если вы храните внутренние детали операции и намеренно разрабатываете тупик.

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

Тупик!

2
добавлено
pro.ruby
pro.ruby
1 181 участник(ов)

Язык программирования Ruby Additional docs: https://rubyreferences.github.io/rubyref/ Invite: https://telegram.me/joinchat/Be4rsT2NuB3CyJaF26j1kA Кто хочет компилировать: @crystal_ru (его синтаксис основан на Ruby) Участник @proDOT

Ruby, Rails, Hanami | dry-rb
Ruby, Rails, Hanami | dry-rb
1 180 участник(ов)

https://telegram.me/rubyjob - Ruby Job По вопросам - @eugene_shved

Ruby School .us
Ruby School .us
1 045 участник(ов)

Чат-болталка для учеников руби-школы и не только. Правила: https://telegra.ph/Pravila-chata-Rubi-shkoly-03-13

Random Ruby Chat
Random Ruby Chat
589 участник(ов)

Правила публикации вакансий: https://t.me/codenamecrud/60865

Rubyata
Rubyata
333 участник(ов)

Коммюнити Ruby и Ruby On Rails Флуд не приветствуются. Вакансии можно публиковать только и ТОЛЬКО по пятницам с хештегом #вакансия.

Ruby Talks
Ruby Talks
236 участник(ов)

Национальная Флеймотека

RubyRush
RubyRush
189 участник(ов)

rubyrush.ru программирование для самых новичков