Я пытаюсь скомпилировать проект C, который я написал, когда использовал окна. Я пытаюсь скомпилировать тот же проект с той же IDE (Code :: Blocks) в Linux (Ubuntu 12.04). У меня есть несколько функций System("CLS")
, используемых в моей программе. Но консоль linux говорит
Я включил <stdlib.h>
и <stdio.h>
(и несколько конечно).Консоль Linux; CLS не найдена ошибка
ответ
Проблема в том, что команда CLS существует только в Windows. Для Linux вам нужна команда: clear
.
В любом случае, это лишь частично решит проблему: а) у вас будет такая же проблема, если вы портируете свою программу на машину Windows, и b) нет причин для возникновения ошибки сегментации.
Команда system
запускает команды оболочки в вашей локальной системе. cls
- действительная команда DOS/Windows, но она не существует в Linux. Команда clear
в Linux обеспечивает аналогичную функциональность.
Ошибка сегментации указывает на неправильную обработку ошибки.
CLS - это старая команда MS-DOS, которая вряд ли будет найдена на вашей машине Linux. Вы не должны полагаться на создание другого процесса, чтобы очистить текст консоли для вас. Вы можете позвонить до clear
или use ANSI escape codes, чтобы выполнить эту работу за вас. Они также не переносимы, но оба они широко используются.
Что такое 'System()'? –
Если вы хотите, чтобы ваш код был портативным, вы не можете вызывать произвольные системные команды, которые могут или не могут существовать в какой-либо конкретной системе. На самом деле, вы не должны предполагать, что система имеет экран, пока вы не проверите, не делает ли это. Что будет делать «CLS», если вы разговариваете с линейным принтером или механизмом преобразования текста в речь? Что бы это сделало, если ваш выход был перенаправлен в файл? –