Я столкнулся с некоторыми проблемами при попытке написать небольшую оболочку на языке c.
Проблема заключается в следующем: Предположим, я написал некоторый код для обработчика сигналов, который в этом случае модифицирован для перехвата SIGCHLD
сигналов. Как я могу уведомить свою программу о том, что сигнал был перехвачен?
Проблема проста, если бы я использовал глобальную переменную , но на самом деле я не хочу этого делать. Так что любые предложения / советы будут высоко оценены!
Вот как я решаю это прямо сейчас.
volatile sig_atomic_t exit_status; /* <--global variabel */
void sigchld_handler(int signal) {
switch (signal) {
case SIGCHLD:
exit_status = 1; /* SIGCHLD was caught, notify program.. */
break;
default:
fprintf(stderr, "Some signal catched\n"); /* not a signal of intrest */
break;
}
}
// Спасибо