Функции библиотеки 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;
}

После компиляции и запуска программы вывод будет следующим:

Waiting for SIGINT (press Ctrl+C)...

При нажатии Ctrl+C (отправкаSIGINTсигнала), вывод будет:

Объяснение

  • signal(SIGINT, handle_sigint);: НастройкиSIGINTОбработчик сигнала —handle_sigint。
  • pause();: приостанавливает процесс, ожидая поступления сигнала. При перехватеSIGINTКогда возникает сигнал,handle_sigintФункция вызывается.
  • После выполнения обработчика сигнала,pauseфункция возвращает -1, и программа продолжает выполнять последующий код.

Примечания

  • pauseФункция обычно используется в программах, управляемых сигналами, чтобы приостановить процесс и дождаться определённого сигнала.
  • ВpauseПока функция приостанавливает процесс, выполнение процесса приостановлено до перехвата сигнала.
  • При обработке сигналов следует учитывать безопасность сигналов; обработчик сигнала должен быть как можно короче и выполнять только безопасные операции.

Стандартная библиотека C - <signal.h>

Другие расширения