Funzione del C

di il
3 risposte

Funzione del C

Salve a tutti, vorrei chiedervi un chiarimento su una funzione del linguaggio C, la funzione read
eccone il prototipo :
int read(int fd, void* buf, int n)
Praticamente la funzione legge un massimo di n byte dal file corrispondente al descrittore fd, ponendoli nell'oggetto puntato da buf .Se la chiamata ha successo viene restituito il numero di byte scritti in buf ,altrimenti viene assegnato un valore a errno e viene restituito -1.
La domanda che vi pongo è la seguente:
nel caso fossero stati scritti un numero inferiore ad n di byte nell'oggetto puntato da buf,come solitamente avviene, alla fine della funzione , il puntatore buf , che può essere di un qualunque tipo, dove punta???

3 Risposte

  • Re: Funzione del C

    Il puntatore non cambia. Punta dove puntava all'inizio in quanto il suo valore non viene modificato dalla read.
  • Re: Funzione del C

    Ah io invece pensavo: siccome nel leggere da file tramite la read non è detto che venga letta l'intera sequenza di byte, allora dopo la prima read il puntatore di buf puntava alla sua fine in modo che con una successiva read venissero letti tutti i caratteri dal file e riempito il buffer.
  • Re: Funzione del C

    Scusami mi sono sbagliato
    veramente io volevo dire, riguardo la posizione del file, se vengono letti un certo numero di byte, la posizione del file non è sempre all'inizio del file, ma avanza di quel numero di byte???
Devi accedere o registrarti per scrivere nel forum
3 risposte