C#, как записать в STDERR сообщение об ошибке из консольного приложения.
Пост из серии спрашивали - отвечаем.
Итак, как в 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\Deb ug>write2stderr.exe
Write to STDOUT.
Write to STDERR.
При выполнении BAT-файла экран останется пустым, но в директории с файлом появятся два файла
stderr_.txt и stdout_.txt со следующим содержимым.stderr_.txt:
Write to STDERR.
stdout_.txt:
Write to STDOUT.
Исходник
Тестовый BAT-файл
BAT-файл и скомпилированный EXE
Это репост с сайта http://tolik-punkoff.com
Оригинал: http://tolik-punkoff.com/2021/08/26/c-ka