> Tech > API spéciales pour liens

API spéciales pour liens

Tech - Par iTPro - Publié le 24 juin 2010
email

Certaines API spéciales s’accommodent parfaitement des liens symboliques. L’API lstat() se comporte exactement comme l’API stat(), à un détail près. Si le nom de chemin d’accès fourni à l’API lstat() est un lien symbolique, l’API renvoie l’information à propos du lien lui-même, tandis que l’API stat() renvoie l’information à propos

du fichier vers lequel pointe le lien. L’API stat() renvoie des informations à propos des fichiers qui se trouvent dans l’IFS : la taille, le type et le propriétaire du fichier, entre autres. Vous pouvez en lire plus sur l’API stat() ainsi que voir quelques exemples de code qui l’utilisent dans un article précédent de cette série, « Obtenir des informations à propos de vos fichiers » iSeries News, juillet-août 2005.

De la même manière, les API lchown() et chown() changent le propriétaire d’un fichier dans l’IFS. Là encore, la différence entre elles ne se manifeste que quand le nom de chemin donné est un lien symbolique. L’API lchown() change le propriétaire du lien symbolique lui-même tandis que l’API chown() change le propriétaire du fichier vers lequel pointe le lien.

Certaines autres API ont des paramètres qui indiquent si les liens symboliques doivent être suivis ou non. Qp01GetAttr() est un exemple de ce genre d’API. Quand le paramètre FollowSymlink est 0, l’API donne les attributs du lien lui-même, tandis que si le paramètre est 1, l’API donne des informations sur le fichier vers lequel pointe le lien. La figure 6 montre le programme READLINK. On voit qu’on peut utiliser l’API readlink() pour savoir vers quel fichier pointe un lien symbolique (A en figure 6). Le premier paramètre est le nom de chemin d’accès vers un symlink que vous voudriez lire. Les deuxième et troisième paramètres spécifient un endroit en mémoire où l’API écrit le nom du chemin d’accès et la taille de cette zone de mémoire, respectivement. En figure 6, j’ai utilisé une variable appelée buffer comme mon emplacement en mémoire. La valeur renvoyée par l’API est la longueur du nom qui est extrait. Vous pouvez utiliser la fonction intégrée (BIF, built-in function) %SUBST pour extraire le nom de chemin à partir du buffer vers une chaîne de longueur variable (B en figure 6).

Téléchargez gratuitement cette ressource

Comment sécuriser la Digital Workplace ?

Comment sécuriser la Digital Workplace ?

Avec le recours généralisé au télétravail, les entreprises ont ouvert davantage leur SI. En dépit des précautions prises, elles ont mécaniquement élargi leur surface d’exposition aux risques. Découvrez 5 axes à ne pas négliger dans ce Top 5 Sécurité du Télétravail.

Tech - Par iTPro - Publié le 24 juin 2010