La fonction system et telnet en C

Bonsoir tout le monde !
J’ai une petite question en c j’espère qu’un de vous pourra m’aider

Via system(); je peux lancer des commandes dans mon shell. Je peux même envoyer des variables. Le problème est que quand je fais telnet sa m’ouvre ma connexion telnet et pas moyen d’écrire après dans telnet (j’espère être pas trop confu dans c’que j’écris).

Par exemple


#include <stdio.h>
#include <stdlib.h>

int main()
{
printf(Hello world!\n\);
char *buffer = telnet\nopen smtp.blabla.com 25;
system(buffer);
return 0;
}

j’ai essayé de plusieuurs façon rien ne passe … Pourtant quand je rentre les commandes dans mon shell sa fonctionne…

Sur windows j’ai le message suivant dans mon shell

et sous Ubuntu

Si quelqu’un à une solution ^^’,

Merci d’avance.
Message edité le 08/06/2007 à 19:45

Normal.

Quand tu es dans telnet, il attend tes entrées.

Quand tu appelles system() il cherche un fichier à exécuter.

Il ne le fait qu’une ligne à une ligne.

Pour que ça fonctionne, fait un tour du côté de fork() et de pipe().

(et je m’en souviens pas assez pour t’aider plus sur fork() & pipe())

Vu l’utilisation de la fonction system à mon avis pas beaucoup de possibilités sauf peut-être procéder comme suis

Modifier ton programme d’une telle manière

#include <stdio.h>;
#include <stdlib.h>;

int main()
{
printf(“Hello world!\n”);
char *buffer = “telnet smtp.blabla.com 25 < fichier.txt”;
system(buffer);
return 0;
}

Et mettre les commandes dans le fichier “fichier.txt”

Cela devrais fonctionner et si ça ne fonctionne pas à mon avis l’utilisation de fork() dup() et pipe() s’impose

PS : Notez que je n’utilises plus les balises [code] car elles rendent le code quasi illisible
Edité le 08/06/2007 à 20:26

Merci beaucoup à vous deux , je me renseigne sur fork et pipe :wink:

La je vais testé ta solution Philouvb :stuck_out_tongue:

Merci encore :wink:

Edit: Erf le fichier.txt ne fonctionne pas ^^’
Edité le 08/06/2007 à 20:29

Alors pas le choix tu devras utiliser
-fork()
-dup()

ce sera un minimum je pense !

Ok je vois ^^’

Bon je laisse tombé cette solution qui me semble tiré par les cheveux je vais reprendre les sockets :slight_smile:

Merci encore :stuck_out_tongue:

ben c’est la même façon de faire hein :slight_smile: