Функции библиотеки C -pause()
Стандартная библиотека C - <signal.h>
pauseЭта функция является функцией стандартной библиотеки C и используется для приостановки (паузы выполнения) процесса до перехвата сигнала. Эта функция определена в<unistd.h>В заголовочном файле.
Синтаксис
int pause(void);
Параметр
pauseФункция не принимает параметров.
Возвращаемое значение
- При успехе
pauseФункция не возвращает управление, потому что процесс прерывается обработчиком сигнала. - При неудаче она возвращает -1 и
errnoУстановить вEINTR, указывая на то, что функция была прервана сигналом.
Пример
Ниже приведён пример использованияpauseПример программы для функции. Эта программа устанавливает обработчик сигнала, который при перехватеSIGINTсигнала (обычно инициируемого нажатием Ctrl+C), возобновляет работу после приостановки.
Пример
#include <stdio.h>
#include <signal.h>
#include <unistd.h>
// Обработчик сигнала
void handle_sigint(int sig) {
printf("Перехвачен сигнал %d\n", sig);
}
int main() {
// Установить обработчик сигнала для SIGINT
signal(SIGINT, handle_sigint);
// Приостановить процесс, ожидать сигнала
printf("Ожидание SIGINT (нажмите Ctrl+C)...\n");
pause();
printf("Выход...\n");
return 0;
}
#include <signal.h>
#include <unistd.h>
// Обработчик сигнала
void handle_sigint(int sig) {
printf("Перехвачен сигнал %d\n", sig);
}
int main() {
// Установить обработчик сигнала для SIGINT
signal(SIGINT, handle_sigint);
// Приостановить процесс, ожидать сигнала
printf("Ожидание SIGINT (нажмите Ctrl+C)...\n");
pause();
printf("Выход...\n");
return 0;
}
После компиляции и запуска программы вывод будет следующим:
Waiting for SIGINT (press Ctrl+C)...
При нажатии Ctrl+C (отправкаSIGINTсигнала), вывод будет:
Объяснение
signal(SIGINT, handle_sigint);: НастройкиSIGINTОбработчик сигнала —handle_sigint。pause();: приостанавливает процесс, ожидая поступления сигнала. При перехватеSIGINTКогда возникает сигнал,handle_sigintФункция вызывается.- После выполнения обработчика сигнала,
pauseфункция возвращает -1, и программа продолжает выполнять последующий код.
Примечания
pauseФункция обычно используется в программах, управляемых сигналами, чтобы приостановить процесс и дождаться определённого сигнала.- В
pauseПока функция приостанавливает процесс, выполнение процесса приостановлено до перехвата сигнала. - При обработке сигналов следует учитывать безопасность сигналов; обработчик сигнала должен быть как можно короче и выполнять только безопасные операции.