View previous topic :: View next topic |
Author |
Message |
Realnot Tux's lil' helper
Joined: 28 May 2007 Posts: 120 Location: Ferrara
|
Posted: Mon Apr 22, 2013 2:03 pm Post subject: Fork, Wait, Exec |
|
|
Salve, qualcuno e' cosi' gentile da spiegarmi l'output di questa porzione di codice? https://gist.github.com/anonymous/5435319 non riesco a capire perche' mi ritorna
Code: | uno
due
Mon Apr 22 15:48:45 CEST 2013
ret: 0 0
ret: 768 3 |
Fino alla riga 4 ci sono, ma poi non capisco perche' la riga 5 (ret: 768 3) ritorna quei valori dalla riga 15 del sorgente in relazione alla exit().
Forse sono off-topic, in tal caso mi scuso. _________________ I'm not stupid, only mentally free... |
|
Back to top |
|
|
pierino_89 Guru
Joined: 03 Oct 2009 Posts: 522
|
Posted: Tue Apr 23, 2013 12:35 am Post subject: Re: Fork, Wait, Exec |
|
|
Realnot wrote: | Salve, qualcuno e' cosi' gentile da spiegarmi l'output di questa porzione di codice? https://gist.github.com/anonymous/5435319 non riesco a capire perche' mi ritorna
Code: | uno
due
Mon Apr 22 15:48:45 CEST 2013
ret: 0 0
ret: 768 3 |
Fino alla riga 4 ci sono, ma poi non capisco perche' la riga 5 (ret: 768 3) ritorna quei valori dalla riga 15 del sorgente in relazione alla exit(). |
Beh, prima esce la fork che è stata rimpiazzata dal comando "date", il quale è uscito con exit status 0 e dunque appare 0.
Dopodiché esce l'altra fork, facendo exit(3) ovviamente come exit status ha 3.
Stampare "ret" non ti serve a niente dal momento che è una variabile da processare: con WEXITSTATUS() ottieni lo stato di uscita, con WTERMSIG() il segnale che ha causato l'uscita, ecc...
Ricordati che in un programma reale dovresti uscire da un child con _exit() e non con exit(), o potresti avere dei problemi
Quote: | Forse sono off-topic, in tal caso mi scuso. |
Probabilmente era meglio nel forum di discussione, magari chiedi a un moderatore se può spostare _________________ Linux registered user 461710 |
|
Back to top |
|
|
ago Developer
Joined: 01 Mar 2008 Posts: 1527 Location: Milan, Italy
|
Posted: Tue Apr 23, 2013 7:32 am Post subject: Re: Fork, Wait, Exec |
|
|
pierino_89 wrote: | Probabilmente era meglio nel forum di discussione, magari chiedi a un moderatore se può spostare |
Si può sempre fare un report quando si vede qualcosa che è errato |
|
Back to top |
|
|
pierino_89 Guru
Joined: 03 Oct 2009 Posts: 522
|
Posted: Tue Apr 23, 2013 11:18 am Post subject: |
|
|
Giusto, scusa ma ieri ero un po' fuso _________________ Linux registered user 461710 |
|
Back to top |
|
|
Realnot Tux's lil' helper
Joined: 28 May 2007 Posts: 120 Location: Ferrara
|
Posted: Fri Apr 26, 2013 12:59 pm Post subject: |
|
|
Ciao, scusa per il ritardo, ci sono, non capisco che diavolo e' quel 738... _________________ I'm not stupid, only mentally free... |
|
Back to top |
|
|
pierino_89 Guru
Joined: 03 Oct 2009 Posts: 522
|
Posted: Sat Apr 27, 2013 11:56 am Post subject: |
|
|
Realnot wrote: | Ciao, scusa per il ritardo, ci sono, non capisco che diavolo e' quel 738... |
Te l'ho detto poco fa:
Quote: | Stampare "ret" non ti serve a niente dal momento che è una variabile da processare: con WEXITSTATUS() ottieni lo stato di uscita, con WTERMSIG() il segnale che ha causato l'uscita, ecc... |
"ret" è un numero binario in cui i diversi gruppi di bit hanno un significato specifico (ad esempio gli 8 bit meno significativi contengono l'exit status). Come puoi facilmente immaginare, una volta convertito in decimale questo numero non ha più assolutamente alcun senso (a meno che tu non sappia calcolare a mente quali sono gli 8 bit meno significativi di 738).
Leggiti questo per avere un'idea dei dati che puoi estrarre da quel valore:
http://digilander.libero.it/uzappi/C/librerie/funzioni/wait.html _________________ Linux registered user 461710 |
|
Back to top |
|
|
Realnot Tux's lil' helper
Joined: 28 May 2007 Posts: 120 Location: Ferrara
|
Posted: Mon Apr 29, 2013 11:52 am Post subject: |
|
|
Ok capito, l'esercizio in questione non presupponeva di sapere cio'... ad ogni modo grazie per il chiarimento _________________ I'm not stupid, only mentally free... |
|
Back to top |
|
|
pierino_89 Guru
Joined: 03 Oct 2009 Posts: 522
|
Posted: Mon Apr 29, 2013 12:09 pm Post subject: |
|
|
Realnot wrote: | Ok capito, l'esercizio in questione non presupponeva di sapere cio'... ad ogni modo grazie per il chiarimento |
Guarda, ti consiglio di leggere in modo maniacale la documentazione di ogni comando perché spesso ci sono delle sottigliezze che ti fregano... Ho dato un esame di C non troppo tempo fa e se non mi fossi spulciato il man, l'info e la documentazione online non l'avrei mai passato _________________ Linux registered user 461710 |
|
Back to top |
|
|
Realnot Tux's lil' helper
Joined: 28 May 2007 Posts: 120 Location: Ferrara
|
Posted: Mon Apr 29, 2013 12:15 pm Post subject: |
|
|
Certo, questo qui' era semplicemente un esercizio di sistemi operativi, una porzione di codice su un pezzo di carta... non avrei mai scritto 738 nell'ultima riga. Sono arriavato a casa, ho provato a farlo girare ed appena ho visto il 738 sono entranto in stallo (tanto per rimanere in tema) _________________ I'm not stupid, only mentally free... |
|
Back to top |
|
|
|