Pagina 1 di 2
Fedora su VM e alarm() signal ignorato
Inviato: mercoledì 6 giugno 2012, 19:26
da Alessio89
E' possibile che Fedora, o che il fatto che giri su virtual machine, faccia ignorare del tutto la chiamata c posix alarm()?
Per fare un esempio pratico:
Codice: Seleziona tutto
#include <stdio.h>
#include <signal.h>
int alarmFlag = 0; /* Global alarm flag */
void alarmHandler (); /* Forward declaration of alarm handler */
/***************************************************************/
main ()
{
signal (SIGALRM, alarmHandler); /* Install signal handler */
alarm (3); /* Schedule an alarm signal in three seconds */
printf ("Looping...\n");
while (!alarmFlag) /* Loop until flag set */
{
pause (); /* Wait for a signal */
}
printf ("Loop ends due to alarm signal\n");
}
/***************************************************************/
void alarmHandler ()
{
printf ("An alarm clock signal was received\n");
alarmFlag = 1;
}
a me nella VM di fedora questo rimane in loop infinito invece dovrebbe terminare dopo 3 secondi
Re: Fedora su VM e alarm() signal ignorato
Inviato: mercoledì 6 giugno 2012, 20:39
da Alessio89
non so perché, ma su debian virtualizzato funziona perfettamente. ora non so se sia colpa di fedora o delle impostazioni di virtualizzazione (su fedora ho attivato l'accelerazione hardware, 4 core, pae e pagine nidificate per avere performance migliori), fatto sta che ora funziona
Re: Fedora su VM e alarm() signal ignorato
Inviato: mercoledì 6 giugno 2012, 22:21
da conoscenza
...non saprei dirti...
bene che vada...
Re: Fedora su VM e alarm() signal ignorato
Inviato: mercoledì 6 giugno 2012, 22:31
da Alessio89
male invece, ci ho messo un'intera giornata a capire perché non andava :\
Re: Fedora su VM e alarm() signal ignorato
Inviato: mercoledì 6 giugno 2012, 22:39
da conoscenza
e alla fine l'hai capito?
Il sistema host è lo stesso per Fedora e Debian?
Re: Fedora su VM e alarm() signal ignorato
Inviato: mercoledì 6 giugno 2012, 22:42
da Alessio89
per debian non ho attivato il multicore, il pae, l'accelerazione hw della cpu e le pagine nidificate, dubito inoltre che sia colpa di fedora... probabilmente sarà colpa di una delle opzioni di virtualbox
cmq già che ci siamo: sai mica come leggere la '&' come parametro del main quando lancio un processo da terminale?
es:
gedit &
vorrei riuscire a leggere la '&' solo che non ci riesco :S
Re: Fedora su VM e alarm() signal ignorato
Inviato: mercoledì 6 giugno 2012, 22:53
da conoscenza
hai provato con il quoting?
cosa ti servirebbe esattamente?
esempio:
gedit \& : quoting singolo carattere
gedit "&" : quoting debole
gedit '&' : quoting forte
Re: Fedora su VM e alarm() signal ignorato
Inviato: mercoledì 6 giugno 2012, 23:24
da Alessio89
no no
io voglio che la classica & per mandare il processo in background nel terminale, permettendo di usare così il terminale per lanciare altri processi, venga registrata o letta in qualche modo dal programma, ma a quanto pare non viene contata proprio come argomento.-.
vabbé, programmi a prova di idioti al 100% col C io non li so fare.
Re: Fedora su VM e alarm() signal ignorato
Inviato: giovedì 7 giugno 2012, 8:44
da dino
Scusa Alessio ma ieri sera poi mi sono addormentato
.
Non ho però capito bene perché gli devi passare la & alla funzione gedit (l'hai presa solo come esempio oppure ti sei fatto tu una funzione gedit?). Spiega meglio
Re: Fedora su VM e alarm() signal ignorato
Inviato: giovedì 7 giugno 2012, 10:32
da Alessio89
era solo un esempio. con la '&' il terminale continua ad essere utilizzabile, ma a quanto pare è un argomento che non viene passato al main del programma ma solo alla shell grafica..