Отправка аргументов канала в приложение C#

Мне нужно создать простое консольное приложение, которое принимает канал в качестве входных данных. Мы используем Windows Server 2012. Данные поступают из другого приложения, которое будет «направлять» входные данные в это приложение. У меня есть представление о каналах с точки зрения Linux, но я плохо понимаю их с точки зрения Windows.

Я думаю, что мне нужно отправить входные данные в мое приложение следующим образом: C:\app.exe ‹ test.txt

При использовании символа '‹' я понимаю, что он преобразует test.txt в поток и передает указатель.

Мой вопрос: может ли кто-нибудь дать мне пример того, как получить указатель потока или что-то эквивалентное каналу в окнах в моем приложении, чтобы я мог читать ввод?


person Payson Welch    schedule 20.03.2013    source источник
comment
возможный дубликат Консоль C# получает ввод с каналом   -  person Mike Perrenoud    schedule 20.03.2013
comment
< перенаправление ввода не имеет ничего общего с каналами, потоками и указателями. Вам действительно нужно использовать трубы или на самом деле вам нужно что-то еще? Из вопроса непонятно.   -  person wRAR    schedule 20.03.2013
comment
@MichaelPerrenoud Я только что нашел этот пост, и да, это работает для обоих, использующих канал '|' и символ ввода файла '‹'   -  person Payson Welch    schedule 20.03.2013
comment
@PaysonWelch, так это ответ на твой вопрос?   -  person Mike Perrenoud    schedule 20.03.2013


Ответы (1)


Когда вы используете < и > с приложением, стандартные потоки ввода и вывода (интерфейс экрана/клавиатуры) заменяются файловым потоком.

Вы можете использовать обычные команды Console.Read и Console.ReadLine для чтения из потока, указанного директивой <, или использовать Console.In, который является TextReader.

Точно так же Console.Write и Console.WriteLine можно использовать для записи в выходной поток, указанный директивой >, или Console.Out, который является TextWriter.

Если вы используете директиву канала |, например myapp.exe | sort, выходной поток первой программы переходит во входной поток следующей программы.

person Guffa    schedule 20.03.2013