Je n'arrive pas à trouver de la doc sur comment est écrit cette
variable en retour... c'est beau d'écrire que c'est le « mode du
fichier (type et permission) » mais je n'arrive pas à recoller cela
avec le mode UNIX...
Manifestement, cette variable est retournée sur 5 chiffres et (par
exemple), le 0660 « UNIX » vaut 33200...
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Ronan Le Hy
Patrice Karatchentzeff writes:
Je n'arrive pas à trouver de la doc sur comment est écrit cette variable en retour... c'est beau d'écrire que c'est le « mode du fichier (type et permission) » mais je n'arrive pas à recoller cela avec le mode UNIX...
perldoc -f stat
% perl -le 'printf "Permissions are %04on", 33200 & 07777; Permissions are 0660
Je n'arrive pas à trouver de la doc sur comment est écrit cette
variable en retour... c'est beau d'écrire que c'est le « mode du
fichier (type et permission) » mais je n'arrive pas à recoller cela
avec le mode UNIX...
perldoc -f stat
% perl -le 'printf "Permissions are %04on", 33200 & 07777;
Permissions are 0660
Je n'arrive pas à trouver de la doc sur comment est écrit cette variable en retour... c'est beau d'écrire que c'est le « mode du fichier (type et permission) » mais je n'arrive pas à recoller cela avec le mode UNIX...
perldoc -f stat
% perl -le 'printf "Permissions are %04on", 33200 & 07777; Permissions are 0660
HTH
-- Ronan
Patrice Karatchentzeff
Ronan Le Hy writes:
Patrice Karatchentzeff writes:
Je n'arrive pas à trouver de la doc sur comment est écrit cette variable en retour... c'est beau d'écrire que c'est le « mode du fichier (type et permission) » mais je n'arrive pas à recoller cela avec le mode UNIX...
perldoc -f stat
% perl -le 'printf "Permissions are %04on", 33200 & 07777; Permissions are 0660
Oui, j'avais lu cela aussi ;-)
Mais je ne comprends pas comment le manipuler... Je voudrais à partir de stat->mode récupérer une variable « à la UNIX »...
$unixmode = ??stat($file)->mode
de façon à pouvoir manipuler et tester les droits normalement...
Bon, j'ai trouvé : il suffit de l'écrire pour que cela vienne ;-)
my $unixmode = printf "%04o", stat("/home/pk/test.pl")->mode & 07777 ;
Je n'arrive pas à trouver de la doc sur comment est écrit cette
variable en retour... c'est beau d'écrire que c'est le « mode du
fichier (type et permission) » mais je n'arrive pas à recoller cela
avec le mode UNIX...
perldoc -f stat
% perl -le 'printf "Permissions are %04on", 33200 & 07777;
Permissions are 0660
Oui, j'avais lu cela aussi ;-)
Mais je ne comprends pas comment le manipuler... Je voudrais à partir
de stat->mode récupérer une variable « à la UNIX »...
$unixmode = ??stat($file)->mode
de façon à pouvoir manipuler et tester les droits normalement...
Bon, j'ai trouvé : il suffit de l'écrire pour que cela vienne ;-)
my $unixmode = printf "%04o", stat("/home/pk/test.pl")->mode & 07777 ;
Je n'arrive pas à trouver de la doc sur comment est écrit cette variable en retour... c'est beau d'écrire que c'est le « mode du fichier (type et permission) » mais je n'arrive pas à recoller cela avec le mode UNIX...
perldoc -f stat
% perl -le 'printf "Permissions are %04on", 33200 & 07777; Permissions are 0660
Oui, j'avais lu cela aussi ;-)
Mais je ne comprends pas comment le manipuler... Je voudrais à partir de stat->mode récupérer une variable « à la UNIX »...
$unixmode = ??stat($file)->mode
de façon à pouvoir manipuler et tester les droits normalement...
Bon, j'ai trouvé : il suffit de l'écrire pour que cela vienne ;-)
my $unixmode = printf "%04o", stat("/home/pk/test.pl")->mode & 07777 ;
Bon, j'ai trouvé : il suffit de l'écrire pour que cela vienne ;-)
my $unixmode = printf "%04o", stat("/home/pk/test.pl")->mode & 07777 ;
(c'est bien un truc tordu cela dit)
C'est pas tordu : le "mode" est formé du type du fichier et des permissions : tu ne veux que les permissions, c'est donc normal de retravailler le résultat obtenu.
Bon, j'ai trouvé : il suffit de l'écrire pour que cela vienne ;-)
my $unixmode = printf "%04o", stat("/home/pk/test.pl")->mode & 07777 ;
(c'est bien un truc tordu cela dit)
C'est pas tordu : le "mode" est formé du type du fichier et des
permissions : tu ne veux que les permissions, c'est donc normal de
retravailler le résultat obtenu.
Bon, j'ai trouvé : il suffit de l'écrire pour que cela vienne ;-)
my $unixmode = printf "%04o", stat("/home/pk/test.pl")->mode & 07777 ;
(c'est bien un truc tordu cela dit)
C'est pas tordu : le "mode" est formé du type du fichier et des permissions : tu ne veux que les permissions, c'est donc normal de retravailler le résultat obtenu.
-- Éric Jacoboni, né il y a 1380306801 secondes
Patrice Karatchentzeff
Eric Jacoboni writes:
Patrice Karatchentzeff writes:
Bon, j'ai trouvé : il suffit de l'écrire pour que cela vienne ;-)
my $unixmode = printf "%04o", stat("/home/pk/test.pl")->mode & 07777 ;
(c'est bien un truc tordu cela dit)
C'est pas tordu : le "mode" est formé du type du fichier et des permissions : tu ne veux que les permissions, c'est donc normal de retravailler le résultat obtenu.
D'accord ; ce qui est tordu est de ne pas avoir les permissions directement. C'est un truc basique du shell et je ne comprends pourquoi cela n'a pas été extrait simplement (d'autant plus que le nom est trompeur : mode représente traditionnellement les droits).
Bon, j'ai trouvé : il suffit de l'écrire pour que cela vienne ;-)
my $unixmode = printf "%04o", stat("/home/pk/test.pl")->mode & 07777 ;
(c'est bien un truc tordu cela dit)
C'est pas tordu : le "mode" est formé du type du fichier et des
permissions : tu ne veux que les permissions, c'est donc normal de
retravailler le résultat obtenu.
D'accord ; ce qui est tordu est de ne pas avoir les permissions
directement. C'est un truc basique du shell et je ne comprends
pourquoi cela n'a pas été extrait simplement (d'autant plus que le nom
est trompeur : mode représente traditionnellement les droits).
Bon, j'ai trouvé : il suffit de l'écrire pour que cela vienne ;-)
my $unixmode = printf "%04o", stat("/home/pk/test.pl")->mode & 07777 ;
(c'est bien un truc tordu cela dit)
C'est pas tordu : le "mode" est formé du type du fichier et des permissions : tu ne veux que les permissions, c'est donc normal de retravailler le résultat obtenu.
D'accord ; ce qui est tordu est de ne pas avoir les permissions directement. C'est un truc basique du shell et je ne comprends pourquoi cela n'a pas été extrait simplement (d'autant plus que le nom est trompeur : mode représente traditionnellement les droits).
D'accord ; ce qui est tordu est de ne pas avoir les permissions directement. C'est un truc basique du shell et je ne comprends pourquoi cela n'a pas été extrait simplement (d'autant plus que le nom est trompeur : mode représente traditionnellement les droits).
Ben non... La fonction stat(2), sur laquelle celle de Perl repose, remplit une struct stat dans laquelle le champ st_mode est exactement ça : une combinaison du type de fichier et de ses permissions.
D'accord ; ce qui est tordu est de ne pas avoir les permissions
directement. C'est un truc basique du shell et je ne comprends
pourquoi cela n'a pas été extrait simplement (d'autant plus que le
nom est trompeur : mode représente traditionnellement les droits).
Ben non... La fonction stat(2), sur laquelle celle de Perl repose,
remplit une struct stat dans laquelle le champ st_mode est exactement
ça : une combinaison du type de fichier et de ses permissions.
D'accord ; ce qui est tordu est de ne pas avoir les permissions directement. C'est un truc basique du shell et je ne comprends pourquoi cela n'a pas été extrait simplement (d'autant plus que le nom est trompeur : mode représente traditionnellement les droits).
Ben non... La fonction stat(2), sur laquelle celle de Perl repose, remplit une struct stat dans laquelle le champ st_mode est exactement ça : une combinaison du type de fichier et de ses permissions.
C'est pareil aussi en Python et en Ruby.
-- Éric Jacoboni, né il y a 1380321414 secondes
Patrice Karatchentzeff
Eric Jacoboni writes:
Patrice Karatchentzeff writes:
D'accord ; ce qui est tordu est de ne pas avoir les permissions directement. C'est un truc basique du shell et je ne comprends pourquoi cela n'a pas été extrait simplement (d'autant plus que le nom est trompeur : mode représente traditionnellement les droits).
Ben non... La fonction stat(2), sur laquelle celle de Perl repose, remplit une struct stat dans laquelle le champ st_mode est exactement ça : une combinaison du type de fichier et de ses permissions.
C'est pareil aussi en Python et en Ruby.
Ce n'est pas parce que c'est aussi mal fait en Python et Ruby que c'est bien ;-)
En fait, je ne reproche pas à stat() de faire ce boulot, je reproche à Perl de ne pas donner accès à cette information simplement (en partant du principe de L. Wall qui dit que ce qui est simple est facile à faire en Perl... or accéder aux permissions est quelque chose de trivial).
Je viens d'avoir à modifier mon script pour ajouter de nouvelles permissions et j'ai dû me servir d'un second script pour connaître la tête des permissions « à la stat » pour les intégrer dans le premier... Je n'ose imaginer la chose quand je relirai cela dans quelques années ;-)
D'accord ; ce qui est tordu est de ne pas avoir les permissions
directement. C'est un truc basique du shell et je ne comprends
pourquoi cela n'a pas été extrait simplement (d'autant plus que le
nom est trompeur : mode représente traditionnellement les droits).
Ben non... La fonction stat(2), sur laquelle celle de Perl repose,
remplit une struct stat dans laquelle le champ st_mode est exactement
ça : une combinaison du type de fichier et de ses permissions.
C'est pareil aussi en Python et en Ruby.
Ce n'est pas parce que c'est aussi mal fait en Python et Ruby que
c'est bien ;-)
En fait, je ne reproche pas à stat() de faire ce boulot, je reproche à
Perl de ne pas donner accès à cette information simplement (en partant
du principe de L. Wall qui dit que ce qui est simple est facile à
faire en Perl... or accéder aux permissions est quelque chose de
trivial).
Je viens d'avoir à modifier mon script pour ajouter de nouvelles
permissions et j'ai dû me servir d'un second script pour connaître la
tête des permissions « à la stat » pour les intégrer dans le
premier... Je n'ose imaginer la chose quand je relirai cela dans
quelques années ;-)
D'accord ; ce qui est tordu est de ne pas avoir les permissions directement. C'est un truc basique du shell et je ne comprends pourquoi cela n'a pas été extrait simplement (d'autant plus que le nom est trompeur : mode représente traditionnellement les droits).
Ben non... La fonction stat(2), sur laquelle celle de Perl repose, remplit une struct stat dans laquelle le champ st_mode est exactement ça : une combinaison du type de fichier et de ses permissions.
C'est pareil aussi en Python et en Ruby.
Ce n'est pas parce que c'est aussi mal fait en Python et Ruby que c'est bien ;-)
En fait, je ne reproche pas à stat() de faire ce boulot, je reproche à Perl de ne pas donner accès à cette information simplement (en partant du principe de L. Wall qui dit que ce qui est simple est facile à faire en Perl... or accéder aux permissions est quelque chose de trivial).
Je viens d'avoir à modifier mon script pour ajouter de nouvelles permissions et j'ai dû me servir d'un second script pour connaître la tête des permissions « à la stat » pour les intégrer dans le premier... Je n'ose imaginer la chose quand je relirai cela dans quelques années ;-)
Je viens d'avoir à modifier mon script pour ajouter de nouvelles permissions et j'ai dû me servir d'un second script pour connaître la tête des permissions « à la stat » pour les intégrer dans le premier... Je n'ose imaginer la chose quand je relirai cela dans quelques années ;-)
Voyons... Ne me dis pas que tu n'as pas écrit une fonction au nom évocateur, richement commentée, prenant en paramètre la sortie de stat() et renvoyant la partie qui t'intéresse ?
Je viens d'avoir à modifier mon script pour ajouter de nouvelles
permissions et j'ai dû me servir d'un second script pour connaître la
tête des permissions « à la stat » pour les intégrer dans le
premier... Je n'ose imaginer la chose quand je relirai cela dans
quelques années ;-)
Voyons... Ne me dis pas que tu n'as pas écrit une fonction au nom
évocateur, richement commentée, prenant en paramètre la sortie de
stat() et renvoyant la partie qui t'intéresse ?
Je viens d'avoir à modifier mon script pour ajouter de nouvelles permissions et j'ai dû me servir d'un second script pour connaître la tête des permissions « à la stat » pour les intégrer dans le premier... Je n'ose imaginer la chose quand je relirai cela dans quelques années ;-)
Voyons... Ne me dis pas que tu n'as pas écrit une fonction au nom évocateur, richement commentée, prenant en paramètre la sortie de stat() et renvoyant la partie qui t'intéresse ?