Это интересно, потому что поведение используемого вами кода не определено.
Прежде всего
Ключевые слова параметра фактически являются «DSL», который создает свойства расширения, которые будут использоваться исполнителем.
Несмотря на то, что детали реализации шаблонных выражений не определены, можно было бы ожидать, что объекты с одиночными параметрами не будут иметь наблюдаемых побочных эффектов.
Это делает ваш наблюдаемый зависание замечательным. Я думаю, что это слабый дизайн, когда простая композиция выражений-аргументов имеет побочные эффекты (кстати, даже при разрушении). Было бы намного лучше, если бы действия запускались только во время выполнения процесса, ИМХО.
Вы можете сообщить об этом разработчикам библиотеки (хотя они, вероятно, скажут «не делайте этого» и пометят это как «по замыслу»).
Во-вторых, ваши ожидания неверны
На самом деле bp::std_out > "filename"
не пытается открыть файл fifo. Он пытается создать файл (поскольку он предназначен только для записи, и вы собираетесь записывать в него данные).
Если вы хотите записать в FIFO, вам нужно будет использовать средства pipe
или async_pipe
.
person
sehe
schedule
14.12.2017
operator>
для настройки перенаправлений из вызовов процессов. Я хотел бы использовать его в вызовеboost::process::child::child
для запуска процесса, но он зависает здесь, прежде чем я даже могу его вызвать. - person Mike   schedule 15.12.2017