Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 13
  1. #1

    Problema funzione alarm() di C

    Ciao a tutti,
    ho una domanda, la funzione alarm() puo' essere richiamata da un programma dopo che una precedente alarm è gia' scaduta?Mi spiego meglio con sto esempio:

    main()
    {
    int sig;
    signal(SIGALRM,help);
    if (setjmp(main_loop))
    {
    printf("JUMP\n");
    }
    printf("PROCESS IS WAITING...\n");
    alarm(2);
    sleep(3); //Il timeout scade sempre
    printf("USCITA\n");
    }

    void help(int val)
    {
    printf("SIGALRM RECEIVED\n");
    longjmp(main_loop,0);
    }

    Il programma dà questo output:

    PROCESS IS WAITING...
    SIGALRM RECEIVED
    JUMP
    PROCESS IS WAITING...
    USCITA


    Non dovrebbe continuare all'infinito nel seguente modo?:master: :master:

    PROCESS IS WAITING...
    SIGALRM RECEIVED
    JUMP
    PROCESS IS WAITING...
    SIGALRM RECEIVED
    JUMP
    PROCESS IS WAITING...
    e via cosi' all'infinito??
    It's just another bombtrack...
    Ogni can mena la coa, ogni coion vö gi' la soa!

  2. #2

    Re: Problema funzione alarm() di C

    Originariamente inviato da raistlin76
    Ciao a tutti,
    ho una domanda, la funzione alarm() puo' essere richiamata da un programma dopo che una precedente alarm è gia' scaduta?Mi spiego meglio con sto esempio:

    main()
    {
    int sig;
    signal(SIGALRM,help);
    if (setjmp(main_loop))
    {
    printf("JUMP\n");
    }
    printf("PROCESS IS WAITING...\n");
    alarm(2);
    sleep(3); //Il timeout scade sempre
    printf("USCITA\n");
    }

    void help(int val)
    {
    printf("SIGALRM RECEIVED\n");
    longjmp(main_loop,0);
    }

    Il programma dà questo output:

    PROCESS IS WAITING...
    SIGALRM RECEIVED
    JUMP
    PROCESS IS WAITING...
    USCITA


    Non dovrebbe continuare all'infinito nel seguente modo?:master: :master:

    PROCESS IS WAITING...
    SIGALRM RECEIVED
    JUMP
    PROCESS IS WAITING...
    SIGALRM RECEIVED
    JUMP
    PROCESS IS WAITING...
    e via cosi' all'infinito??
    per essere possibile, e' possibile..
    ma non mi ricordo come..
    mi pare devi chiamare 2 volte l'alarm..
    comunque guardo a casa..
    avevo fatto un processo che stampava l'ora in background ogni 30
    secondi finche' non si killava da console..

  3. #3
    Ho provato col doppio alarm() ma nulla da fare :master:

    Ho notato che il problema si ha solo se scade il timer precedente...
    It's just another bombtrack...
    Ogni can mena la coa, ogni coion vö gi' la soa!

  4. #4
    SNORT...non riesco a propio a farla (ri)andare quest'alarm, mi potete aiutare per favore??
    It's just another bombtrack...
    Ogni can mena la coa, ogni coion vö gi' la soa!

  5. #5
    Originariamente inviato da raistlin76
    SNORT...non riesco a propio a farla (ri)andare quest'alarm, mi potete aiutare per favore??
    la devi richiamare all' interno della funzione help!
    ciauz.

  6. #6
    Non mi funziona neanche se richiamo l'alarm all'interno della
    funzione help che gestisce l'arrivo del segnale....
    It's just another bombtrack...
    Ogni can mena la coa, ogni coion vö gi' la soa!

  7. #7
    Mmmmmh....in reltà il timer della funzione alarm() riparte, il problema sembra legato al sistema operativo (Linux) che non manda + il segnale di allarme al processo...:master: :master:
    It's just another bombtrack...
    Ogni can mena la coa, ogni coion vö gi' la soa!

  8. #8
    Originariamente inviato da raistlin76
    Mmmmmh....in reltà il timer della funzione alarm() riparte, il problema sembra legato al sistema operativo (Linux) che non manda + il segnale di allarme al processo...:master: :master:
    cavolo..
    mi dimentico sempre di guardare..
    a casa ho un esempio bello e fatto..
    domani dovrei portarlo..se mi ricordo..
    comunque e ' una stupidaggine..

  9. #9
    Grazie1000 e scusa per il disturbo
    It's just another bombtrack...
    Ogni can mena la coa, ogni coion vö gi' la soa!

  10. #10


    X favore aiutatemi...sarà una cavolata, ma non va!!!
    It's just another bombtrack...
    Ogni can mena la coa, ogni coion vö gi' la soa!

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.