История изменений
Исправление Shushundr, (текущая версия) :
Вот, да, супер.
Я забыл (не вспомнил, не знал), что консольная утилита должна ещё обрабатывать сигналы.
Консольная утилита должна корректно обрабатывать сигналы Linux, такие как SIGINT (Ctrl+C), SIGQUIT (Ctrl+) и другие. Обработка сигналов может включать в себя временное прерывание работы утилиты, завершение процесса или выполнение определённых действий перед завершением. Утилита может обрабатывать сигналы с помощью команды trap, которая позволяет задать код обработки сигнала и список сигналов, разделённых пробелами.
Утилита dd обрабатывает сигналы SIGINT и SIGQUIT.
#include <signal.h>
void sigint_handler(int sig) {
// корректно завершить работу и сохранить данные
exit(0);
}
int main() {
signal(SIGINT, sigint_handler);
// ...
}
Исправление Shushundr, :
Вот, да, супер.
Я забыл (не вспомнил, не знал), что консольная утилита должна ещё обрабатывать сигналы.
Консольная утилита должна корректно обрабатывать сигналы Linux, такие как SIGINT (Ctrl+C), SIGQUIT (Ctrl+) и другие. Обработка сигналов может включать в себя временное прерывание работы утилиты, завершение процесса или выполнение определённых действий перед завершением. Утилита может обрабатывать сигналы с помощью команды trap, которая позволяет задать код обработки сигнала и список сигналов, разделённых пробелами.
Утилита dd обрабатывает сигналы SIGINT и SIGQUIT.
Исходная версия Shushundr, :
Вот, да, супер.
Я забыл (не вспомнил, не знал), что консольная утилита должна ещё обрабатывать сигналы.