No consigo implementar una función
Publicado por Daniel Delgado (2 intervenciones) el 11/01/2019 12:34:35
Hola buenas tardes, soy principiante en lenguaje C y me estoy volviendo loco intentando implementar una función para que me de la fecha y la hora del sistema cuando le escribo un comando. ¿Alguien puede ayudarme y decirme que estoy haciendo mal?, les adjunto mi código:
Si recibe SIGTERM(señal nº 15) sacará mensaje de identificación , se despide y acaba. Si recibe SIGUSR1 (señal 10) se identifica y dice fecha , hora del sistema.
Muchas gracias
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
#include <stdlib.h>
#include <stdio.h>
#include <time.h>
#include <sys/types.h>
#include <signal.h>
#include <unistd.h>
void posibleSenal(int codigo_senal);
int main(int argc,char* argv[]){
if (signal(SIGUSR1,posibleSenal)==SIG_ERR){
time_t tiempo = time(0);
struct tm *tlocal = localtime(&tiempo);
char output[128];
strftime(output,128,"%d/%m/%y %H:%M:%S",tlocal);
printf("%s\n",output);
perror("Error de señal SIGUSR1\n");
exit(EXIT_FAILURE);
}
if (signal(SIGTERM,posibleSenal)==SIG_ERR){
perror("Error de señal SIGTERM\n");
exit(EXIT_FAILURE);
}
while(1){
pause();
}
}
void posibleSenal(int codigo_senal){
switch(codigo_senal){
case SIGUSR1:
printf("Señal recibida SIGUSR1\n");
break;
case SIGTERM:
printf("Señal recibida SIGTERM\n Fin\n");
exit(EXIT_SUCCESS);
}
}
Si recibe SIGTERM(señal nº 15) sacará mensaje de identificación , se despide y acaba. Si recibe SIGUSR1 (señal 10) se identifica y dice fecha , hora del sistema.
Muchas gracias
Valora esta pregunta


0