Я пишу код на языке C, в котором я анализирую некоторые данные. Я настроил программу на обработку только 100 входных данных. Когда у него более 100 входов, это дает ошибку сегментации. Я хочу создать способ, чтобы, когда количество входов превышает 100, пользователь будет предупрежден, и программа завершится. Я знаю, как сделать это из основной функции, просто return 0
, однако у меня есть несколько вызовов функций вне main, и трудно сделать, чтобы даже возвращал 0
в этой функции будет держать его в цикле.
Есть ли способ немедленно завершить всю программу, не находясь в main?
Стандартная функция exit
- это то, что вы ищете:
Обычно завершает процесс, выполняя регулярную очистку для завершения процессов.
Во-первых, все функции, зарегистрированные вызовами atexit, выполняются в обратном порядке их регистрации. Затем все потоки закрываются, временные файлы удаляются, и, наконец, элемент управления возвращается в среду хоста.
Аргумент состояния возвращается в хост-среду.
Было бы лучше, если бы вы исправили ошибку segfault.