Я использую Eclipse Oxygen.3A для разработки на C, и операционная система, на которой я работаю, - это Fedora 28. Проект C, который я пытаюсь отладить, содержит несколько экземпляров system("clear");
.Когда я компилирую и запускаю приложение с локального терминала Fedora, любые вызовы system()
будут вести себя нормально.После использования инструментов отладки Eclipse, чтобы «перешагнуть» оператор и выполнить его, терминал запуска напечатал мусор (см. Скриншот ниже).Один и тот же вывод печатается при каждом запуске программы.
system("clear") is executed">
Я создал новый проект с такими же переменными среды, который изолировал это утверждение, но получил тот же результат (см. Скриншот ниже).Единственная переменная окружения, присутствующая в любой конфигурации запуска, - это TERM
, которая установлена в xterm-256color
(значение, напечатанное локальным терминалом Fedora при вводе echo $TERM
).Я не смог найти никаких результатов в Интернете, касающихся этой конкретной проблемы, и не понимаю, как эта функция реализована во время компиляции.
![Separate](https://i.stack.imgur.com/uznrD.png)
Содержимое исходного файла в тестовом проекте:#include
int main(void) {
system("clear");
return 0;
}
Генерируемый вывод: '[ESC]' + "[3J" + '[ESC]' + "[H" + '[ESC]' + "2J"
Примечание. Представьте, что эта строка объединена.Я не смог записать вывод буквально, потому что StackOverflow не может представлять символ «escape».
Мои знания Linux, bash и инструментов, предоставляемых GNU, довольно ограничены, поэтому дайте мне знать, если есть какая-либо дополнительная информацияна этот случай было бы полезно вместе с тем, как его получить.Кроме того, любые отзывы о том, как я могу улучшить этот пост, приветствуются.