Je cherche à débuter en c++ et pour cela j'aimerai créer un application qui me permette de transférer tout ce qui arrive sur le port lpt1 vers un fichier.
Essaie déjà, en ligne de commande :
$ cat /dev/lp0 > ton_fichier
C'est l'un des grands avantages d'Unix : Tu peux contrôler la majorité des ressources sans avoir à écrire une ligne de code ni lancer une application dédiée.
Après, comme dit plus haut, ce serait sympa de savoir ce que tu connais déjà, effectivement. Sinon, le meilleur moyen de contrôler le port parallèle en C++ sous Linux est de faire exactement ce que tu ferais en ligne de commande, c'est-à-dire l'ouvrir et le traiter comme s'il s'agissait d'un fichier ordinaire.
Je te conseille de mettre de coté le DOS et Windows pour un moment.
Si tu as fait du Turbo Pascal, du Basic, et des fichiers Bat, certes tes connaissances ont 15 à 20 ans d'âge, mais au moins tu sais faire un peu plus que cliquer sur des icônes.
Dans un premier temps, essaie de te familliariser avec Unix, d'une manière générale. Sa ligne de commande est extrêmement puissante, et te permet la plupart du temps d'arriver à faire ce qui t'aurait nécessité l'écriture d'un programme dans un environnement Microsoft.
Trouve-toi déjà un tutoriel Unix qui te convienne :
Commence par t'entraîner avec le Shell pour être efficace.
---
Ensuite, si tu veux débuter en C++, pas de problème, mais connais-tu déjà le C au moins ? Si ce n'est pas le cas, la plupart des gens te conseillera de commencer d'abord par cela.
Essaie d'explorer gcc et g++ d'un coté, et de lire le cours de Casteyde de l'autre (le meilleur à mon goût) :
Contrairement aux idées reçues, le C n'est pas un passage nécessaire pour l'apprentissage du C++. Il complique pas mal les premiers pas du débutant en forçant très tôt l'apprentissage de notions évoluées qui auraient pu être vues en toute quiétude bien plus tard. C'est aussi comme cela que l'on se retrouve avec des cours/TPs/TDs qui montrent des codes incorrects (typiquement qui font dans le buffer overflow), les codes justes étant trop complexes pour des débutants.
Et non, commencer par le C++, ne veut pas dire de commencer par l'OO. Il s'agit juste de s/char*/std::string, s/array/std::vector, s/passage de pointeurs par valeur/passage d'argument par référence/, s/syntaxe et pièges de printf/cout, s/scanf(ptr)/cin>>donnée/, ... C'est tout bête, mais cela fait toute la différence : on peut se concentrer sur l'algorithmique et autres choses vraiment importantes dans un premier temps.
Bref. Plein de ressources à ce sujet :
- la FAQ sur le site de Stroustrup, avec un lien vers un article que je ne peux que conseiller de lire et de méditer. Il traite du pourquoi le C++ doit être enseigné comme un langage à part entière
- la FAQ sur developpez qui a une Q/R sur comment débuter en C++.
Je vous laisse sortir votre moteur de recherche préféré.
Côté cours de C++, le meilleur que je connaisse, c'est Accelerated C++, par Koenig et Moo chez Addisson Wesley. Il n'a pas été traduit. C'est un ouvrage pédagogique qui n'est pas un ouvrage de référence, et qui ne traite ni de C, ni de C/C++, mais bel et bien de C++98.
Pour en revenir à ce que cherche à faire l'OP. Non seulement le C++ n'est pas le plus adapté à ce genre de traitements (tout comme le C ; Cf. la redirection déjà montrée qui prend un tiers de ligne à écrire), mais en plus le C++ natif ne doit pas le permettre si mes souvenirs sont bons -- je ne suis pas persuadé que l'on puisse ouvrir /dev/lp0 avec un simple std::fstream, mais je peux me tromper. Il y a de fortes chances qu'il faille utiliser des APIs système ou POSIX, dont les interfaces demandent des connaissances en C...
# Quelle sont tes connaissances de base ?
Posté par jeje99 . Évalué à 3.
# Les fichiers spéciaux ?
Posté par Obsidian . Évalué à 3.
Essaie déjà, en ligne de commande :
$ cat /dev/lp0 > ton_fichier
C'est l'un des grands avantages d'Unix : Tu peux contrôler la majorité des ressources sans avoir à écrire une ligne de code ni lancer une application dédiée.
Après, comme dit plus haut, ce serait sympa de savoir ce que tu connais déjà, effectivement. Sinon, le meilleur moyen de contrôler le port parallèle en C++ sous Linux est de faire exactement ce que tu ferais en ligne de commande, c'est-à-dire l'ouvrir et le traiter comme s'il s'agissait d'un fichier ordinaire.
[^] # Re: Les fichiers spéciaux ?
Posté par supai . Évalué à 1.
Je connais un peu des commandes shell.
J'ai fais deux ou trois bat pour me faciliter la vie mais je voudrai approfondir ds un language afin de me construire des outils.
J'ai fais un peu de basic et turbo pascal mais cela remonte à bien longtemps.
J'attends vos conseils.
[^] # Re: Les fichiers spéciaux ?
Posté par Obsidian . Évalué à 3.
Si tu as fait du Turbo Pascal, du Basic, et des fichiers Bat, certes tes connaissances ont 15 à 20 ans d'âge, mais au moins tu sais faire un peu plus que cliquer sur des icônes.
Dans un premier temps, essaie de te familliariser avec Unix, d'une manière générale. Sa ligne de commande est extrêmement puissante, et te permet la plupart du temps d'arriver à faire ce qui t'aurait nécessité l'écriture d'un programme dans un environnement Microsoft.
Trouve-toi déjà un tutoriel Unix qui te convienne :
http://www.google.fr/search?hl=fr&q=Tutoriel+UNIX&bt(...)
Commence par t'entraîner avec le Shell pour être efficace.
---
Ensuite, si tu veux débuter en C++, pas de problème, mais connais-tu déjà le C au moins ? Si ce n'est pas le cas, la plupart des gens te conseillera de commencer d'abord par cela.
Essaie d'explorer gcc et g++ d'un coté, et de lire le cours de Casteyde de l'autre (le meilleur à mon goût) :
http://casteyde.christian.free.fr/cpp/cours/online/book1.htm(...)
[^] # Re: Les fichiers spéciaux ?
Posté par lmg HS (site web personnel) . Évalué à 2.
Et non, commencer par le C++, ne veut pas dire de commencer par l'OO. Il s'agit juste de s/char*/std::string, s/array/std::vector, s/passage de pointeurs par valeur/passage d'argument par référence/, s/syntaxe et pièges de printf/cout, s/scanf(ptr)/cin>>donnée/, ... C'est tout bête, mais cela fait toute la différence : on peut se concentrer sur l'algorithmique et autres choses vraiment importantes dans un premier temps.
Bref. Plein de ressources à ce sujet :
- la FAQ sur le site de Stroustrup, avec un lien vers un article que je ne peux que conseiller de lire et de méditer. Il traite du pourquoi le C++ doit être enseigné comme un langage à part entière
- la FAQ sur developpez qui a une Q/R sur comment débuter en C++.
Je vous laisse sortir votre moteur de recherche préféré.
Côté cours de C++, le meilleur que je connaisse, c'est Accelerated C++, par Koenig et Moo chez Addisson Wesley. Il n'a pas été traduit. C'est un ouvrage pédagogique qui n'est pas un ouvrage de référence, et qui ne traite ni de C, ni de C/C++, mais bel et bien de C++98.
Pour en revenir à ce que cherche à faire l'OP. Non seulement le C++ n'est pas le plus adapté à ce genre de traitements (tout comme le C ; Cf. la redirection déjà montrée qui prend un tiers de ligne à écrire), mais en plus le C++ natif ne doit pas le permettre si mes souvenirs sont bons -- je ne suis pas persuadé que l'on puisse ouvrir /dev/lp0 avec un simple std::fstream, mais je peux me tromper. Il y a de fortes chances qu'il faille utiliser des APIs système ou POSIX, dont les interfaces demandent des connaissances en C...
[^] # Re: Les fichiers spéciaux ?
Posté par supai . Évalué à 1.
J'en prends bonne note.
A bientôt
[^] # Re: Les fichiers spéciaux ?
Posté par supai . Évalué à 1.
cat/dev/lp0> mon_fichier
Par compte le problème est que les données que je veux récuperer se trouve sur un pc windows.
Puis je faire cette commande depuis un debian, de manière constante en créant un fichier par journée.
Si oui comment puis je m'y prendre.
Merci d'avance.
Suivre le flux des commentaires
Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.