Domanda sulla funzione read

di il
4 risposte

Domanda sulla funzione read

Scusate ho un dubbio sulla funzione read(int fd, void *buf ,int size_buf);
essa restituisce il numero di byte letti oppure -1 in caso di errore

se uso la funzione all'interno di un ciclo, magari perchè ho bisogno di leggere esattamente quel numero di byte, ad ogni lettura la read legge un certo numero di byte e poi li salva nel buffer buf , ma poi quando rieffettua la read, perchè siamo in un ciclo, non è che ricomincia a scrivere dall'inizio del buffer?
considerate che io prima di fare tutto ciò ho allocato memoria sufficiente per il buffer buf

4 Risposte

  • Re: Domanda sulla funzione read

    La funzione scrive dalla posizione del buffer che gli indichi tu.

    Quindi, o sposti il puntatore o consumi il contenuto del buffer spostandolo da qualche parte ad ogni chiamata.
  • Re: Domanda sulla funzione read

    Scusami ma non penso di aver capito
    in pratica il puntatore buf punta al primo elemento di buf, ma essendo un ciclo ogni volta che effettua la read va a leggere dal file e a riscrivere esattamente dal primo elemento del buffer. giusto?
  • Re: Domanda sulla funzione read

    Ovviamente sì, a meno che tu non sposti il puntatore in modo da tener conto dei caratteri già scritti.
  • Re: Domanda sulla funzione read

    Grazie mille ho risolto
Devi accedere o registrarti per scrivere nel forum
4 risposte