IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

POSIX C Discussion :

Récupérer le device avec stat


Sujet :

POSIX C

  1. #1
    Membre à l'essai
    Profil pro
    Étudiant
    Inscrit en
    Mai 2009
    Messages
    37
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2009
    Messages : 37
    Points : 22
    Points
    22
    Par défaut Récupérer le device avec stat
    Bonjour

    Lors d'un ls -l sur /dev on obtient ça:
    [...]
    crw--w---- 1 root tty 4, 8 2009-12-01 10:23 tty8
    crw--w---- 1 root tty 4, 9 2009-12-01 11:23 tty9
    [...]

    Dans la structure stat il y a st_dev et st_rdev mais je n'arrive pas à trouver de macro ou quelque chose de ce genre pour pouvoir trouver le device (ici 4,).

    Auriez vous une petite idée?

    Merci!

  2. #2
    Candidat au Club
    Profil pro
    Inscrit en
    Juin 2009
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2009
    Messages : 5
    Points : 4
    Points
    4
    Par défaut
    As tu essaye avec la macro :
    S_ISCHR(m) un périphérique en mode caractère ?

  3. #3
    Membre averti Avatar de Jenna
    Inscrit en
    Décembre 2009
    Messages
    272
    Détails du profil
    Informations personnelles :
    Âge : 39

    Informations forums :
    Inscription : Décembre 2009
    Messages : 272
    Points : 339
    Points
    339
    Par défaut
    Citation Envoyé par renovati0 Voir le message
    Dans la structure stat il y a st_dev et st_rdev mais je n'arrive pas à trouver de macro ou quelque chose de ce genre pour pouvoir trouver le device (ici 4,).
    Quelles est la valeur que tu récupères. Elle est peut être codée sous forme device major en poid fort et device minor en poid faible ?
    La valeur n'attend pas le nombre des années

  4. #4
    Membre à l'essai
    Profil pro
    Étudiant
    Inscrit en
    Mai 2009
    Messages
    37
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2009
    Messages : 37
    Points : 22
    Points
    22
    Par défaut
    Merci pour vos réponses!

    Donc, ls -l affiche cela:
    crw-rw-rw- 1 root wheel 5, 7 Nov 30 15:02 ttyp7
    Ce qui correspond à:
    st_dev = 117505793
    st_rdev = 1287
    Pour S_ISCHR, je pense pas:
    S_ISCHR checks the file mode m to see whether the file is a character device file. If so it returns True.

  5. #5
    Membre averti Avatar de Jenna
    Inscrit en
    Décembre 2009
    Messages
    272
    Détails du profil
    Informations personnelles :
    Âge : 39

    Informations forums :
    Inscription : Décembre 2009
    Messages : 272
    Points : 339
    Points
    339
    Par défaut
    Une idée comme cela, mais 1287 en hexa, cela fait 0x507 ce qui ressemble furieusement à ce que tu cherches
    La valeur n'attend pas le nombre des années

  6. #6
    Membre à l'essai
    Profil pro
    Étudiant
    Inscrit en
    Mai 2009
    Messages
    37
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2009
    Messages : 37
    Points : 22
    Points
    22
    Par défaut
    Hexa-ct !

    crw-rw-rw- 1 root wheel 0 Nov 28 14:07 63744 random
    63744 = 0xF900
    On le tronque en deux: 0xF9 0x00
    0xF9 = 249
    0x00 = 0
    et donc on obtient bien:
    crw-rw-rw- 1 root wheel 249, 0 Nov 30 09:06 random
    Je me creuserais un peu plus la tête la prochaine fois
    Merci !
    (bonjour aux gens d'epitech :p )

  7. #7
    Candidat au Club
    Profil pro
    Inscrit en
    Juin 2009
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2009
    Messages : 5
    Points : 4
    Points
    4
    Par défaut
    Si tu aimes faire des calculs et des conversions de bases c'est cool mais bon sache que ce que je t'ai dit fonctionne tres bien car la en loccurence /dev/random est un character device file.

    Tu le reconnais au 'c' devant lors de ton ls donc la macro fonctionne parfaitement (tu peux me croire je viens de tester )

  8. #8
    Membre à l'essai
    Profil pro
    Étudiant
    Inscrit en
    Mai 2009
    Messages
    37
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2009
    Messages : 37
    Points : 22
    Points
    22
    Par défaut
    Mais ça me dis si c'est un device, ça me retourne pas ses valeurs.

  9. #9
    Futur Membre du Club
    Profil pro
    Inscrit en
    Mai 2009
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2009
    Messages : 8
    Points : 6
    Points
    6
    Par défaut
    Pour recuperer les numero mineur et majeur des devices, il suffit de faire un minor() et un major() sur le st_dev (ou st_rdev, je ne sais plus).

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Impression du device avec directx et c#
    Par EPSFranck dans le forum DirectX
    Réponses: 2
    Dernier message: 06/04/2011, 10h41
  2. Réponses: 3
    Dernier message: 10/02/2006, 15h31
  3. Newbie en XML: récupérer le contenu avec de l'ASP
    Par yoda_style dans le forum ASP
    Réponses: 3
    Dernier message: 13/01/2006, 11h46
  4. [VB.NET] [ODBC] Récupérer des valeurs avec requête ODBC?
    Par Pleymo dans le forum Windows Forms
    Réponses: 5
    Dernier message: 04/03/2005, 16h38
  5. Réponses: 2
    Dernier message: 29/03/2004, 13h44

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo