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: 1514 Location: Cosenza, 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 _________________ Contattami se vuoi contribuire in:
-Arch tester
-Chromium tester
-Traduzione doc. it
-Security |
|
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 |
|
 |
|