Comment accéder à ctime, mtime, … d’un lien symbolique?

Sur unix, les liens symboliques sont des pointeurs vers un autre fichier. Non seulement le fichier mais aussi le lien symbolique a un ctime, mtime, …. Je sais que le temps des liens symboliques est accessible, car ls affiche. Si j’utilise un des File#ctime , File#mtime , … de ruby, j’obtiens toujours l’atsortingbut du fichier vers lequel le lien symbolique pointe, pas du lien symbolique. Comment lire ces valeurs en ruby? Si ce n’est pas possible dans Ruby, dites-moi comment le faire en C. J’écrirais ma propre extension c dans ce cas.

Utilisez le File#lstat() . Exemple:

 # This is a dummy symlink; there's no file named "foo". ln -s foo bar # Run irb. irb(main):001:0> File.lstat("bar") => # # Get the mtime of the link. irb(main):002:0> File.lstat("bar").mtime => 2010-01-05 17:59:05 -0500 

lstat() peut le faire en C; Je ne sais pas s’il existe un équivalent Ruby.

Il n’y a pas seulement les atsortingbuts du lien symbolique et les atsortingbuts de la cible finale, mais aussi, si le lien symbolique est lui-même vers un autre lien symbolique, une ou plusieurs étapes intermédiaires; pour obtenir tous les atsortingbuts, vous devez faire des statistiques dans une boucle readlink.