Я задаю этот вопрос не потому, что не знаю, почему происходят стеки.Я видел этот вопрос раньше.
Я разрабатываю средство проверки OnlineJudge, поэтому мне нужно решить эту проблему.
В качестве примера рассмотрим следующий код оболочки:
{ ./a.out; } 2>err
Другие распространенные ошибки времени выполнения, такие как ошибки сегментации (недопустимые указатели) и исключения с плавающей запятой (1/0,1% 0) может обрабатываться следующим образом.
Однако рассмотрим следующий код C:
int main() {
int a[2];
a[0] = 1;
a[1] = 2;
a[2] = 3;
return 0;
}
Выполнение указанного выше кода оболочки будет по-прежнему выводить **** stack smashing detected ***: ./a.out terminated*
на консоли.Что мне делать, если я хочу перенаправить вывод этой ошибки?