ACCESSIBILITAT I CANVI DE DATA.

Si volem saber si tenim accés a un determinat fitxer, podem fer servir la funció següent:

#include <unistd.h>

int access(const char * nom_fitxer, int mode);

mode és un d'aquests valors:

R_OK Accés de lectura
W_OK Accés d'escriptura
X_OK Accés d'execució
F_OK Existència del fitxer

Si disposem de l'accés demanat, retornarà 0, si no -1 i errno contindrà el motiu.

Per a canviar alguna de les tres dates associades a un fitxer, l'usuari root pot utilitzar:

#include <sys/types.h>
#include <utime.h>

int utime((const char * nom_fitxer, const struct utimbuf * apbuffer);

Els valors de retorn són com sempre: 0 si va bé i -1 (amb errno) si hi ha errades.

Mentre que apbuffer apunta a una variable del tipus que hem copiat de /usr/iclude/utime.h:

struct utimbuf
{
__time_t actime; /* Access time. */
__time_t modtime; /* Modification time. */
};

Els dos membres d'aquest struct, actime i modtime, estan en segons des de la "data zero" de Unix (l'1 de gener de 1970 a les 00:00 hores), ens caldrà l'ús d'alguna funció de C com ara mktime.

El següent programa utilitza les funcions que hem descrit sobre el fitxer /tmp/proves.txt:

 

 

Autor: Lluís València López

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