ACTUALITZACIÓ DE DADES

La següent crida permet reposicionar el cursor de lectura/escriptura.

#include <unistd.h>

off_t lseek (int fd, off_t num, int base);

Els tipus de dada off_t és en realitat un long int .

base és un d'aquests valors: SEEK_SET, SEEK_CUR o SEEK_END, respectivament començament de fitxer, posició actual del cursor o final del fitxer
num és el desplaçament respecte de l'origen

lseek: Posiciona el cursor a num bytes de la posició base respecte del fitxer especificat per fd. Si hi ha error, retorna -1, però si no, retorna el nombre de bytes respecte el principi del fitxer i això li dóna a la funció dues utilitats extres:

  • Saber quants bytes té el fitxer. Només cal veure quin valor retorna lseek quan es crida així lseek (fd, 0, SEEK_END).
  • Obtenir la posició actual del cursor respecte el començament del fitxer: lseek (fd, 0, SEEK_CUR).

Practica reescrivint el programa que havíem fet en actualitzar fitxers amb les funcions de C, però ara utilitzant només crides al sistema.

 

 

Autor: Lluís València López

Creative Commons License
Aquesta obra està subjecta a una Llicència de Creative Commons.