Señales (Signals) en Linux, programar Signal handler en C

แชร์
ฝัง
  • เผยแพร่เมื่อ 7 พ.ย. 2024

ความคิดเห็น • 37

  • @ulzana53
    @ulzana53 3 ปีที่แล้ว +6

    El mejor canal de TH-cam para aprender C, explica usted de maravilla y hace que entender este lenguaje sea ilusionante. Gracias por todo.

    • @WhileTrueThenDream
      @WhileTrueThenDream  3 ปีที่แล้ว +1

      Me has alegrado el día con el comentario. Gracias. :-)

    • @ulzana53
      @ulzana53 3 ปีที่แล้ว +1

      Con esas capacidades didacticas, romperia las estadisticas de las empresas de cursos online, udemy, etc...

  • @aritzcantocombarro3089
    @aritzcantocombarro3089 ปีที่แล้ว

    eres una maquina, lo haces todo tan fácil y se entiende tan bien. Me alegro mucho de haber encontrado tu canal, gracias por compartir tus conocimientos

  • @fernandodorado8641
    @fernandodorado8641 6 ปีที่แล้ว +4

    De los mejores canales de habla hispana que hay para aprender

  • @javiermuro5523
    @javiermuro5523 5 ปีที่แล้ว +6

    Geniaal, siempre que busco estas cosas espero que haya algo tuyo, me encanta

  • @nukablue474
    @nukablue474 6 ปีที่แล้ว +2

    Genial, muy bien explicado y me has ayudado bastante. Lo de listar las señales me parece super útil para verlas y para hacer comprobaciones, un saludo!

  • @kratoss2358
    @kratoss2358 ปีที่แล้ว +1

    El segundo de oro es cuando haces el primer SIGKILL. Le das con ganas al intro...jajaja

  • @angelffg
    @angelffg ปีที่แล้ว

    Buen video. Explicas muy bien y tienes buen contenido. Por favor sigue adelante!

    • @WhileTrueThenDream
      @WhileTrueThenDream  ปีที่แล้ว +1

      Gracias. En cuanto tenga algo de tiempo libre vuelvo al canal!

    • @angelffg
      @angelffg ปีที่แล้ว

      @@WhileTrueThenDream Gracias, de verdad tu contenido es muy bueno ✌🏻

  • @alvdel2126
    @alvdel2126 6 ปีที่แล้ว +4

    Muy buen video, explicado de manera facil de entender

  • @SrZ00M
    @SrZ00M 4 ปีที่แล้ว +2

    Bien explicado estimada.
    Te comento que probé el código con el loop y pause y la respuesta no es "intemitente" como vos lo mostrás en el video. Sino que luego que se ejecuntan todos los loops/pause (cambie el while(1) por un for) recién muestra por pantalla los printf. ¿a que se puede deber este comportamiento diferente? ¿será la consola que utilizo?...
    ¿por que pienso que es la consola?, porque cuando quiero ver los procesos con ps u; el comando muestra todos los procesos, incluido los que corren en mi entorno gráfico. ...
    vos: ¿que pensás de esto estimada?

    • @WhileTrueThenDream
      @WhileTrueThenDream  4 ปีที่แล้ว +2

      Holaaa!!
      Uf no recuerdo para nada cómo era el programa de este vídeo... jejeje... lo hice hace algunos nmses. A ver si saco un rato esta semana y le echo un ojo al código.
      Saludos
      Saludos

    • @robertocampelo6948
      @robertocampelo6948 2 ปีที่แล้ว +2

      Fíjate que no te falte el "
      ", retorno de carro, sin esta nimiedad no funciona correctamente.

    • @SrZ00M
      @SrZ00M 2 ปีที่แล้ว

      @@robertocampelo6948 Si. Exactamente. Ese
      es la cuestión. Luego intenté pensar/intuir respecto a la razón para que esto suceda e hice algunas teorías para después comprobarlas. Pero me distraje y lo abandoné...

  • @ulzana53
    @ulzana53 3 ปีที่แล้ว +1

    La realizar el ejercicio y ejecutar el programa utilizando la signal SIGIO, en mi caso se finaliza el proceso con el mensaje: "Operacion E/S permitida....base", sin embargo si utilizo la signal SIGTSTP que se envía al pulsar la teclas CTRL + Z, entonces se ejecuta nuestra funcion y se imprime por pantalla nuestro mensaje y el proceso continua....

  • @dioganes
    @dioganes 2 ปีที่แล้ว

    Ole, ole y ole!!
    Sin más...

  • @lauti95
    @lauti95 2 หลายเดือนก่อน

    TE AMOOOOO

  • @phyroxdimebag3862
    @phyroxdimebag3862 6 ปีที่แล้ว +2

    excelente sube mas videos

  • @PatriotaMex
    @PatriotaMex 4 ปีที่แล้ว +3

    Mi pregunta solo seria: para que me serviria hacer un programa como este?
    Algun uso practico para este tipo de funcionalidad?

    • @WhileTrueThenDream
      @WhileTrueThenDream  4 ปีที่แล้ว +6

      Este ejemplo es simplemente para explicar el mecanismo de enviar señales y manejarlas. En la "vida real" he visto utilizados estos conceptos para:
      -Señalización entre programas de que hay datos disponibles (por ejemplo en un fichero)
      - El programa de monitoring de procesos descrubre un error fatal de power supply y envía señales para que los procesos terminen
      - funciones de testeo para ver como reaccionan los procesos cuando un modulo se cae ...

    • @WhileTrueThenDream
      @WhileTrueThenDream  4 ปีที่แล้ว +5

      Ah, también para evitar el comportamiento por defecto al recibir algunas señales que el sistema envia cuando hay un error, algunas señales son "TERM" y tiran el modulo. Talvez quieras guardar informacion o chequear errores al recibirla y despues ignorarla o recibirla y terminar...A veces una señal hace cosas tremendas....como tirarte, y me ha pasado, un servidor que no atiende a alguna señal. Tambien te puede proteger de un modulo mal programado que envia señales mal

    • @PatriotaMex
      @PatriotaMex 4 ปีที่แล้ว +2

      @@WhileTrueThenDream muchisimas gracias por contestar primeramente, y despues por compartir tu conocimiento, excelente canal el tuyo, sigue asi!

  • @rafaelolivera6589
    @rafaelolivera6589 5 ปีที่แล้ว +1

    Por qué cuando pasas como parámetro a la función MySignalHandler a la función signal, le pones un &, osea por que el &MySignalHandler?

    • @WhileTrueThenDream
      @WhileTrueThenDream  5 ปีที่แล้ว +2

      Holaa. Buena pregunta, he tenido que leer un poco esta tarde: 1.- el argumento "handler" es la dirección de la función que va a ser llamada. (Bib: The linux Programming Interface by Michael Kirsk). 2.- Kernighan & Ritchie (2nd Edition, 5.11 "Pointers To Functions" p119) states that "since [cmp] is known to be a function, the & operator is not necessary, in the same way that it is not needed before an array name.". O sea es innecesario ... aqui la discusion en stack overflow stackoverflow.com/questions/258422/function-pointers-in-c-address-operator-unnecessary

  • @asierpelayotapia4992
    @asierpelayotapia4992 3 ปีที่แล้ว +1

    Muchas gracias!!

  • @PatriotaMex
    @PatriotaMex 4 ปีที่แล้ว +1

    Has de disculpar lo molesto, pero cambie tu ejemplo para usar SIGKILL y despues muestre un mensaje, pero no muestra nada, sera que solo funciona para SIGIO?
    Saludos

    • @WhileTrueThenDream
      @WhileTrueThenDream  4 ปีที่แล้ว

      Hola.
      Del Linux programmmer Manual:
      "The signals SIGKILL and SIGSTOP cannot be caught, blocked, or ignored" man7.org/linux/man-pages/man7/signal.7.html

    • @PatriotaMex
      @PatriotaMex 4 ปีที่แล้ว +1

      @@WhileTrueThenDream Hasta parece cosa hecha adrede que haya intentado probar precisamente con esas dos señales :S Muchisimas gracias amiga!

  • @stevenguti6903
    @stevenguti6903 5 ปีที่แล้ว +1

    Que buen video 7u7

  • @josegalvez9547
    @josegalvez9547 5 ปีที่แล้ว

    grasias me sirvio aca mis 10

  • @julioalvia3619
    @julioalvia3619 6 ปีที่แล้ว

    Buen vídeo

  • @violecov8079
    @violecov8079 ปีที่แล้ว

    Ahora todo tiene sentido