fbpx
Skip to main content

[LA] Linux avanzato 2008

  • COM_EASYSOCIAL_GUEST_NAME
  • Avatar di COM_EASYSOCIAL_GUEST_NAME
  • Visitatori
  • Visitatori
17 Anni 1 Mese fa #84328 da COM_EASYSOCIAL_GUEST_NAME
Risposta da COM_EASYSOCIAL_GUEST_NAME al topic [LA] Linux avanzato 2008
perchè la read ritorna il numero di caratteri letti! :)

Si prega Accedi o Crea un account a partecipare alla conversazione.

Di più
17 Anni 1 Mese fa #84329 da chiara sabbatella

perchè la read ritorna il numero di caratteri letti! :)

Per andare d corsa ho postato un pezzo d codice sbagliato:

while((r = read(pipefd[0], buff, 1)) > 0)
{
printf("leggo %c, %d\n", buff[0], r);
}
Il fatto è che nn si verifica mai la condizione che r sia 0 e quindi non esce mai anche quando ha effettivamente letto tutto.... perchè questo?

Si prega Accedi o Crea un account a partecipare alla conversazione.

  • COM_EASYSOCIAL_GUEST_NAME
  • Avatar di COM_EASYSOCIAL_GUEST_NAME
  • Visitatori
  • Visitatori
17 Anni 1 Mese fa #84330 da COM_EASYSOCIAL_GUEST_NAME
Risposta da COM_EASYSOCIAL_GUEST_NAME al topic [LA] Linux avanzato 2008

RAGAZZI qualche anima pia che ha seguito il corso (specie le ultime 2 lezioni) o sostenuto l'esame potrebbe dirmi per favore come studiare le ultime 10 pagine della dispensa sull'inizializzazione? bisogna memorizzare tutte quelle funzioni e relativa spiegazione, vedere il codice associato, leggere i capitoli del libro indicati o altro?

GRAZIE 10000! :) ciao!


No ovviamente :) basta che sai piu' o meno che fa il sistema durante l'inizializzazione, magari ricordati qualche funzioncina carina tipo la rest_init()....

Si prega Accedi o Crea un account a partecipare alla conversazione.

  • COM_EASYSOCIAL_GUEST_NAME
  • Avatar di COM_EASYSOCIAL_GUEST_NAME
  • Visitatori
  • Visitatori
17 Anni 1 Mese fa #84331 da COM_EASYSOCIAL_GUEST_NAME
Risposta da COM_EASYSOCIAL_GUEST_NAME al topic [LA] Linux avanzato 2008

perchè la read ritorna il numero di caratteri letti! :)

Per andare d corsa ho postato un pezzo d codice sbagliato:

while((r = read(pipefd[0], buff, 1)) > 0)
{
printf("leggo %c, %d\n", buff[0], r);
}
Il fatto è che nn si verifica mai la condizione che r sia 0 e quindi non esce mai anche quando ha effettivamente letto tutto.... perchè questo?


quello che cercavo di dirti prima è che la condizione non va bene semplicemente perchè la read è bloccante, ossia se la pipe è vuota perchè non ci scrive più nessuno non significa che la read ti ritorni 0, ma semplicemente che la funzione non ritorna fino a quando non ci sarà almeno un carattere nella pipe... Il che non avviene mai nel tuo caso perchè l'altro processo ha finito di scrivere...

per questo ti suggerivo di usare un carattere speciale che gli fa capire che deve uscire:

ad esempio
while (read(.........))
{
if (buff[0]=='\n') break;
}
spero di esserti stato utile! ciao

Si prega Accedi o Crea un account a partecipare alla conversazione.

  • COM_EASYSOCIAL_GUEST_NAME
  • Avatar di COM_EASYSOCIAL_GUEST_NAME
  • Visitatori
  • Visitatori
17 Anni 1 Mese fa #84332 da COM_EASYSOCIAL_GUEST_NAME
Risposta da COM_EASYSOCIAL_GUEST_NAME al topic [LA] Linux avanzato 2008

RAGAZZI qualche anima pia che ha seguito il corso (specie le ultime 2 lezioni) o sostenuto l'esame potrebbe dirmi per favore come studiare le ultime 10 pagine della dispensa sull'inizializzazione? bisogna memorizzare tutte quelle funzioni e relativa spiegazione, vedere il codice associato, leggere i capitoli del libro indicati o altro?

GRAZIE 10000! :) ciao!


No ovviamente :) basta che sai piu' o meno che fa il sistema durante l'inizializzazione, magari ricordati qualche funzioncina carina tipo la rest_init()....


grazie dirac! Questo è confortante, già ci sono un botto di cose da memorizzare (in teoria da "capire", ma capire senza "ricordare" è come non capire... :) ) per quest'orale! :)

PS: ti avevo mandato un pm qualche giorno fa (non so se lo hai visto). se e quando hai un attimo di tempo/voglia mi potresti rispondere per favore? :D grazie 2**10 ;)

Si prega Accedi o Crea un account a partecipare alla conversazione.

Di più
17 Anni 1 Mese fa #84475 da Federico Fioravanti
allora come è andata la prova di laboratorio del 10?
qualcuno riesce a postare la traccia ??
grazie

Si prega Accedi o Crea un account a partecipare alla conversazione.