Programa C que no se suspende cuando se presiona Ctrl+Z

Escriba un programa en C que no termine cuando se presiona Ctrl+Z. Imprime un mensaje «No se puede suspender con Ctrl+Z» y continúa la ejecución.

Podemos usar la señal de Unix para esto. Cuando se presiona Ctrl+Z, se genera la señal SIGTSTP.

La señal SIGTSTP es enviada a un proceso por su terminal de control para solicitar que se detenga (terminal stop). Podemos captar esta señal y ejecutar nuestra propia señal definida.
La función de biblioteca C estándar signal() se puede usar para configurar un controlador para cualquiera de las señales anteriores.

// C program that does not suspend when
// Ctrl+Z is pressed
#include <stdio.h>
#include <signal.h>
  
// Signal Handler for SIGTSTP
void sighandler(int sig_num)
{
    // Reset handler to catch SIGTSTP next time
    signal(SIGTSTP, sighandler);
    printf("Cannot execute Ctrl+Z\n");
}
  
int main()
{
    // Set the SIGTSTP (Ctrl-Z) signal handler
    // to sigHandler
    signal(SIGTSTP, sighandler);
    while(1)
    {
    }
    return 0;
}

Producción:

Cannot execute Ctrl+Z

Este artículo es una contribución de Pramod Kumar . Si le gusta GeeksforGeeks y le gustaría contribuir, también puede escribir un artículo usando contribuya.geeksforgeeks.org o envíe su artículo por correo a contribuya@geeksforgeeks.org. Vea su artículo que aparece en la página principal de GeeksforGeeks y ayude a otros Geeks.

Escriba comentarios si encuentra algo incorrecto o si desea compartir más información sobre el tema tratado anteriormente.

Publicación traducida automáticamente

Artículo escrito por GeeksforGeeks-1 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *