У меня есть Test.cpp
, который запускается под sandbox
(RHEL7): содержаниередирект стандартный вывод и стандартный поток ошибок в другой файл под песочницу в Linux
test.cpp:
#include<stdio>
int main(void) {
int a = 1/0;
return 0;
}
компилировать его с помощью GCC (4.8) test.cpp который производит a.out
Сейчас работает a.out гравюр floating pointing exception
на консоли
Теперь я подумал, что если я перенаправить стандартный поток ошибок в файл, я ожидать, что ошибка будет печататься I n файл. Но это не так, он все еще продолжает печатать на консоли. Googling показывает, что при таком исключении программа немедленно прекращается, и если вы захватываете stderr bash, тогда она должна перенаправляться. Так я бегу
su -c ./a.out 2>err
Бинго ошибка получить напечатанный в ERR файле.
Теперь MAIN GAME НАЧИНАЕТСЯ я хочу, чтобы запустить его под песочнице так я бегу:
su -c 'sandbox ./a.out 1>out 2>err'
Но нет ничего печататься в ERR файле или в консоли.
Как записать stdout и stderr в такой ситуации?
** песочница не позволяет вам записывать файлы **, то как вы пишете файлы с помощью 'cat'? – anubhava
Я добавил гораздо больше деталей в вопрос – Bhuvan
Попробуйте эту команду: «su -c» песочница ./a.out '1> out 2> err' – anubhava