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

C Discussion :

lire /dev/psaux en C


Sujet :

C

  1. #1
    Membre habitué
    Profil pro
    Inscrit en
    Septembre 2009
    Messages
    12
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2009
    Messages : 12
    Par défaut lire /dev/psaux en C
    Bonjour,

    J'essaye de lire les mouvements de ma souris.
    Pour cela j'ai fais un fichier de test que voila :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
     
    #include <stdio.h>
    #include <fcntl.h>
    #include <unistd.h>
    #include <stdlib.h>
     
    int main() {
    	int fd;
    	char buff[1024];
     
    	fd = open("/dev/psaux", O_RDONLY);
    	if (fd < 0) {
    		write(1, "FAIL to open /dev/psaux the program will exit\n", 46);
    		return (EXIT_FAILURE);
    	}
    	while (1) {
    		write (1, "souris : ", 9);
    		if (read(fd, buff, 1024))
    		       printf("%s\n", buff);
    	}
    	return (EXIT_SUCCESS);
    }
    Je sais c'est pas tres jolie mais bon ce n'est qu'un test après tout.
    Ma question est la suivante :
    Comment read /dev/psaux?

    A l'heure actuel mon read return bien un buffer mais ce buffer contient des caractères non imprimables.

    Merci

  2. #2
    Modérateur
    Avatar de Obsidian
    Homme Profil pro
    Chercheur d'emploi
    Inscrit en
    Septembre 2007
    Messages
    7 461
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Chercheur d'emploi
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2007
    Messages : 7 461
    Par défaut
    Bonsoir,

    « /dev/psaux » te renvoie les événements tels qu'ils te sont envoyés par la souris, c'est à dire sous forme de données binaires, respectant le protocole PS/2. Tu trouveras le détail de ce protocole ici :

    http://www.computer-engineering.org/ps2mouse/
    http://www.colinfahey.com/ps2_mouse_...mputer_en.html

    Ce n'est pas forcément très compliqué. Par contre, c'est une mauvaise idée de lire les événements de la souris à un niveau si bas. Ceci risque d'influer sur tous les autres programmes qui utilisent la souris.

    Si c'est pour un test, ok. Si c'est parce que tu as réellement besoin de connaître la position de la souris dans un de tes programmes, il faut utiliser les fonctions proposées par l'environnement dans lequel tu travailles.

  3. #3
    Membre habitué
    Profil pro
    Inscrit en
    Septembre 2009
    Messages
    12
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2009
    Messages : 12
    Par défaut
    Merci pour la doc!

    En fait c'est pour faire une analyse des mouvements global de la souris a tout les niveaux du système. C'est pour ça que je dois lire les données à bas niveau.

  4. #4
    Expert éminent
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 395
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 395
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    write (1, "souris : ", 9);
    Tu sais, même à EPITA, il n'est pas interdit d'utiliser STDOUT_FILENO, à ma connaissance. Cela permet d'éviter les nombres magiques...
    SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.

    "Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
    Apparently everyone.
    -- Raymond Chen.
    Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.

Discussions similaires

  1. Lire /dev/urandom ?
    Par MClerc dans le forum Scilab
    Réponses: 4
    Dernier message: 01/12/2014, 17h11
  2. Le grand mode d'emploi du forum, à lire si vous souhaitez tout savoir !
    Par Anomaly dans le forum Mode d'emploi & aide aux nouveaux
    Réponses: 2
    Dernier message: 03/06/2013, 17h36
  3. Ecrire & lire un fichier texte sous Dev-C++
    Par ocean_prince11 dans le forum Dev-C++
    Réponses: 4
    Dernier message: 17/11/2007, 01h32
  4. Créer / Lire des clés registre sous Dev-Cpp
    Par N3odyme dans le forum Windows
    Réponses: 4
    Dernier message: 11/09/2006, 21h08
  5. [dev c++]Lire le presse papier
    Par litbos dans le forum Windows
    Réponses: 1
    Dernier message: 12/10/2005, 18h36

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