Я написал код, чтобы получить сообщение об ошибке выполнения преднамеренно:О стандартный вывод/STDERR перенаправлений
int main()
{
int a=5;
printf("Hello World\n");
printf("a=%s\n", a);
}
Это дает:
$ ./error.o
Hello World
Segmentation Fault
$
Теперь, чтобы записать ошибки во время выполнения, я:
$ ./error.o > so.txt
$ ./error.o &> soe.txt
Но оба файла пустые. Зачем?
EDIT:
Я действительно пишу сценарий для удаленной компиляции и исполнения программы гр. Из ответов я получаю, что Segmentation Fault
не является выходом ошибки программы. Итак, есть ли способ захватить этот вывод? Кроме того, программа является просто образцом, поэтому я не могу добавить утверждения. Может ли линия-буферизация выполняться любым другим способом с перенаправлением?
% s для междунар неправильно. – Nyan
@Nyan: Я делаю это намеренно, чтобы получить seg-fault. Я пишу сценарий для захвата ошибок выполнения, поэтому это просто имитирует будущий возможный ввод в мой скрипт. – lalli
Вы отредактировали вопрос о том, как включить буферизацию строк для перенаправленных файлов. Я обновил свой ответ, чтобы добавить информацию. – jjrv