Пост из серии спрашивали — отвечаем.
Итак, как в C# записать в STDERR
. STDERR
— это стандартный поток вывода для сообщений об ошибках, туда правильно организованные консольные приложения отправляют, собственно, сообщения об ошибках. Отправить в STDERR
сообщение можно с помощью объекта Console.Error
:
Console.Error.WriteLine("Write to STDERR.");
static void Main(string[] args) { Console.WriteLine("Write to STDOUT."); Console.Error.WriteLine("Write to STDERR."); }
Для проверки можно создать BAT-файл, вызывающий тестовое приложение и переопределяющий (копия) вывод со стандартных потоков в файлы stderr_.txt
и stdout_.txt
. stderr
и stdout
являются зарезервированными системными именами, потому к именам файлов надо что-то добавить, знак _
в данном случае:
Экран при выполнении тестового приложения:
Z:\...\write2stderr\write2stderr\bin\Debug>write2stderr.exe
Write to STDOUT.
Write to STDERR.
При выполнении BAT-файла экран останется пустым, но в директории с файлом появятся два файла stderr_.txt
и stdout_.txt
со следующим содержимым.
stderr_.txt: Write to STDERR. stdout_.txt: Write to STDOUT.