Как я могу комбинировать дескрипторы в Haskell?

Я бы хотел иметь что-то вроде перенаправления bash 2> & 1 в Haskell, которое объединяет stdout и stderr из процесса в один дескриптор . Было бы неплохо сделать это напрямую с помощью System.Process.createProcess или подобной библиотечной функции, особенно если она использует ту же семантику, что и перенаправление bash w.r.t. чередование ввода от дескрипторов.

Гибкость, предлагаемая createProcess , поначалу кажется многообещающей: можно указать дескриптор , который будет использоваться для стандартных файловых дескрипторов, то же самое Дескриптор может быть указан как для stdout , так и для stderr . Однако аргументы Handle должны уже существовать до вызова. Без возможности создать Handle из воздуха перед вызовом функции, я не уверен, что проблема может быть решена таким способом.

Изменить: Решение должно работать независимо от платформы .

15
задан acfoltzer 18 July 2011 в 17:39
поделиться