ENLLAÇOS DURS I SIMBÒLICS

Per a crear enllaços durs, podem fer ús de la següent funció:

#include <unistd.h>

int link(const char * nom_fitxer_antic; const char * nom_fitxer_nou);

link només val per a arxius del mateix dispositiu (no mounts) que no siguin directoris. Retorna 0 si va bé i -1 si no es pot fer l'enllaç (errno contindrà el codi de l'anomalia que s'hagi produït).

I pel que fa a crear enllaços simbòlics, vegem les següents funcions:

#include <unistd.h>

int symlink (const char * nom_fitxer_antic; const char * nom_fitxer_nou);
int readlink (const char * nom_link_simbolic, char * buffer, size_t mida);

symlink crea amb nom nom_fitxer_nou un enllaç simbòlic al fitxer nom_fitxer_antic.
Retorna 0 si funcionen correctament i -1 si no és així (i errno contindrà el codi d'errada).

readlink llegeix el nom del fitxer on apunta un enllaç simbòlic. Posarà el nom a buffer, que tindrà una mida màxima de mida.
Retorna el nombre de caràcters llegits si va bé i -1 si no és així (errno...)

Totes dues funcions retornen 0 si funcionen correctament i -1 si no és així (i errno contindrà el codi d'errada).

Per practicar, crearem el fitxer /tmp/dades.txt amb la comanda echo hola >/home/asi2/dades.txt
Després, hi crearem un enllaç simbòlic des de la línia de comandes fent
ln -s /home/asi2/dades.txt ~/copia.txt
El següent programa, crearà un enllaç dur a /home/asi2/dades.txt i llegirà ~/copia.txt per veure on apunta:

Observeu l'ús de la funció getenv, que ens permet obtenir el valor de qualsevol variable d'entorn.

 

 

Autor: Lluís València López

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