Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
2861 connectés 

  FORUM HardWare.fr
  Programmation

  [Perl] sous Unix - Structures

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[Perl] sous Unix - Structures

n°95812
manegarm
Posté le 01-02-2002 à 17:00:27  profilanswer
 

Je voudrais lire dans le fichier /var/adm/wtmp les structures concernant les derniers login... Comment faire ?
Comment lit-on une structure ?
 
merci d'avance

mood
Publicité
Posté le 01-02-2002 à 17:00:27  profilanswer
 

n°95824
manegarm
Posté le 01-02-2002 à 17:58:32  profilanswer
 

Ok, j'ai reussi a trouve comment on lit une structure...
Un petit unpack en binmode a l'air de marcher
Le probleme est que je n'arrive pas a bien recuperer les donnees...

n°95856
Suri
Darksurious
Posté le 01-02-2002 à 21:01:00  profilanswer
 
n°95870
R@NNIS
Tout est possible ou presque.
Posté le 01-02-2002 à 22:23:13  profilanswer
 

open(WTMP , $file);
/* ouverture du fichier */
 
$i = 0;
 
while (sysread(WTMP, $buf, 36))
    {
        ($wtmp[$i]{tty} , $wtmp[$i]{name} , $wtmp[$i]{host} , $wtmp[$i]{time}) = unpack('A8A8A16L4', $buf); /* regarde les options de unpack pour ca la je cherchais des champs specifiques :) */  
        $i++;
    }


---------------
Mes News
n°95871
R@NNIS
Tout est possible ou presque.
Posté le 01-02-2002 à 22:31:31  profilanswer
 

voici un example du perlfaq5 de perl.
 
Comment manipuler un fichier avec des enregistrements de longueur fixe?
 
   Le  plus  efficace  est  d'utiliser pack() et unpack(). C'est plus rapide que d'utiliser substr() sur de nombreuses, nombreuses
   chaînes. C'est plus lent pour seulement quelques unes.
 
   Voici  un  morceau de code démontrant comment décompiler et recompiler ensuite des lignes formattées selon un schéma donné, ici
   la sortie du programme ps, version Berkeley:
    # exemple de ligne:
    #   15158 p5  T      0:00 perl /home/ram/bin/scripts/now-what
    $PS_T = 'A6 A4 A7 A5 A*';
    open(PS, "ps|" );
    print scalar <PS>;
    while (<PS> ) {
        ($pid, $tt, $stat, $time, $command) = unpack($PS_T, $_);
        for $var (qw!pid tt stat time command!) {
            print "$var: <$$var>\n";
        }
        print 'line=', pack($PS_T, $pid, $tt, $stat, $time, $command),
                "\n";
    }
 
   Nous  avons  utilisé  $$var  d'une  façon  défendue  par  use  strict 'refs'. En effet, nous promouvons une chaîne au statut de
   référence  sur  une  variable scalaire par le biais d'une référence symbolique. C'est justifié dans des petits programmes, mais
   supporte  mal  l'utilisation  intensive.  D'autre  part,  cela ne fonctionne qu'avec des variables globales, par opposition aux
   lexicales.


---------------
Mes News
n°96275
manegarm
Posté le 03-02-2002 à 17:43:22  profilanswer
 

Merci beaucoup de ton aide


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation

  [Perl] sous Unix - Structures

 

Sujets relatifs
[MySQL/Perl] Aidez moi ![C/unix] Librairie de video
Perl et Javascript....comment faire un grosse manip de checkbox????[perl/php] création d'index ??
[PHP] Reg. Exp. Perl -> je merdouille ..ARFFF gros PB avec PERL/HTML/NETSCAPE
[unix-awk] comment définir 1 caractère pas son code ascii sous unix ?programmation temps réel en C sous Unix
[PERL] Les listes chainees[PERL] J'arrive pas a faire fonctionner le script formmail !
Plus de sujets relatifs à : [Perl] sous Unix - Structures


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR