Пост из серии спрашивали — отвечаем.
Итак, как в 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.