Problème réception linux CAN
Fermé
cocoldEF
Messages postés
5
Date d'inscription
jeudi 9 avril 2020
Statut
Membre
Dernière intervention
27 mai 2020
-
9 avril 2020 à 16:51
mamiemando Messages postés 33433 Date d'inscription jeudi 12 mai 2005 Statut Modérateur Dernière intervention 17 décembre 2024 - 20 avril 2020 à 14:02
mamiemando Messages postés 33433 Date d'inscription jeudi 12 mai 2005 Statut Modérateur Dernière intervention 17 décembre 2024 - 20 avril 2020 à 14:02
A voir également:
- Problème réception linux CAN
- Problème de réception tv pas de signal aujourd' hui - Guide
- Accusé de reception gmail - Guide
- Accusé de reception outlook - Guide
- Serveur de reception - Guide
- Linux mint 32 bits - Télécharger - Systèmes d'exploitation
4 réponses
mamiemando
Messages postés
33433
Date d'inscription
jeudi 12 mai 2005
Statut
Modérateur
Dernière intervention
17 décembre 2024
7 809
10 avril 2020 à 00:53
10 avril 2020 à 00:53
Bonjour,
Il est inutile de passer par un fichier dans ton cas de figure. Un pipe peut faire l'affaire, il suffit que ton programme en c/c++ traite le flux lu sur
Tu peux aussi faire un appel système à
Bonne chance
Il est inutile de passer par un fichier dans ton cas de figure. Un pipe peut faire l'affaire, il suffit que ton programme en c/c++ traite le flux lu sur
stdin.
candump | ./mon_programme
Tu peux aussi faire un appel système à
candumpdepuis traiter son flux de sortie à la volée (voir
popenpar exemple) mais ça a moins de cachet puisque ça rend ton programme dépendant de
candump(au lieu de le rendre juste dépendant de la nature du flux).
Bonne chance
cocoldEF
Messages postés
5
Date d'inscription
jeudi 9 avril 2020
Statut
Membre
Dernière intervention
27 mai 2020
10 avril 2020 à 08:57
10 avril 2020 à 08:57
Merci pour ta réponse ! je vais regarder ca :)
cocoldEF
Messages postés
5
Date d'inscription
jeudi 9 avril 2020
Statut
Membre
Dernière intervention
27 mai 2020
Modifié le 20 avril 2020 à 13:52
Modifié le 20 avril 2020 à 13:52
Du coup pour le
et je pourrai ensuite récupérer les lignes écrite par le candump dans un string "tab" comme ceci si j'ai bien compris ?
popen, l'initialisation ce ferai comme ceci ?:
File *sortie=NULL;
sortie=popen("./candump","r");
et je pourrai ensuite récupérer les lignes écrite par le candump dans un string "tab" comme ceci si j'ai bien compris ?
File *sortie = NULL; void main(void) { sortie = popen("./candump","r"); char tab[30]; if(sortie != NULL) { while(fgets(tab,30,sortie)!=NULL) { fprintf("%s", tab); } } return 0; }
mamiemando
Messages postés
33433
Date d'inscription
jeudi 12 mai 2005
Statut
Modérateur
Dernière intervention
17 décembre 2024
7 809
20 avril 2020 à 14:02
20 avril 2020 à 14:02
Bonjour,
Pas exactement. Déjà c'est
Un premier exemple ici :
https://www.gnu.org/software/libc/manual/html_node/Pipe-to-a-Subprocess.html
Ici un flux contenant des entiers de 1 à 100 est pipé dans la commande
Ensuite, regarde ici :
https://stackoverflow.com/questions/280571/how-to-control-popen-stdin-stdout-stderr-redirection
N'oublie pas que sous linux ou dans google tu peux chercher "man popen" pour comprendre ce que font et comment s'utilisent les différentes fonctions de la libc.
Bonne chance
Pas exactement. Déjà c'est
FILE *et il faut éviter les variables globale. Ensuite tout open qui a fonctionné doit se conclure par un
pclose.
Un premier exemple ici :
https://www.gnu.org/software/libc/manual/html_node/Pipe-to-a-Subprocess.html
Ici un flux contenant des entiers de 1 à 100 est pipé dans la commande
more. Ce n'est pas exactement ce que tu veux mais c'est un exemple assez minimal pour comprendre la logique.
Ensuite, regarde ici :
https://stackoverflow.com/questions/280571/how-to-control-popen-stdin-stdout-stderr-redirection
N'oublie pas que sous linux ou dans google tu peux chercher "man popen" pour comprendre ce que font et comment s'utilisent les différentes fonctions de la libc.
Bonne chance