Problème avec la fontion int system(char*)

Fermé
BloodyAngel Messages postés 1482 Date d'inscription mardi 21 juin 2005 Statut Contributeur Dernière intervention 21 juin 2018 - 12 oct. 2005 à 01:52
BloodyAngel Messages postés 1482 Date d'inscription mardi 21 juin 2005 Statut Contributeur Dernière intervention 21 juin 2018 - 13 oct. 2005 à 22:25
Hello :)

J'ai un petit problème à vous soumettre si vous voulez bien... vous voulez bien ? miciiiiiii ^^

Alors voilà :
je suis en train d'écrire un programme très simple en langage C de façons à gérer les net send.

Dans mon code je fais appel à la fonction int system(char*)
exemple : num=system("net send xxxxx hello");

En fait, dans mon code, une ligne de commande comme celle de l'exemple marche très bien au début. Mais si je réécris la même ensuite ça ne va pas du tout.

Ce qui se passe, c'est que je le fais une fois et ça marche, puis je fais une série de strcpy bien innocents (je copie juste des chaîne de caractères dans des variables char). Ensuite je refais un appel system(...) exactement comme l'autre, et là plus rien... et ce jusqu'à la fin du programme :(

Après bien des efforts, j'ai récupéré le code d'erreur 2 dans la variable errno... et encore je ne suis sûr de rien.

Voilà, si quelqu'un a une idée je lui serais très reconnaissant :)

Merci d'avance
A voir également:

4 réponses

Char Snipeur Messages postés 9813 Date d'inscription vendredi 23 avril 2004 Statut Contributeur Dernière intervention 3 octobre 2023 1 298
12 oct. 2005 à 08:59
Salut
Je n'ai pas tout compris, mais je pense à deux choses :
affiche les chaines à l'écran avant de les envoyer vers system pour vérifier qu'elles sont bien comme tu souhaite.
il y a peu être avec net send une certaine latence avant de pouvoir en envoyer un autre.
0
BloodyAngel Messages postés 1482 Date d'inscription mardi 21 juin 2005 Statut Contributeur Dernière intervention 21 juin 2018 402
12 oct. 2005 à 18:17
En fait j'ai résolu ce problème... sans trop comprendre sa raison.
Bizarrement, c'était l'instruction de copie strcpy qui posait problème et empêchait les net send qui suivaient. Pareil pour sprintf. Donc j'ai entré mes données lors de l'initialisation du tableau de char. C'est laborieux et peu esthétique mais ça marche et ça ne gâche rien au niveau performances du programme...

J'ai un autre problème actuellement... J'ai des collègues qui ne peuvent pas envoyer des net sends avec mon programme à certains utilisateurs alors que moi je peux. Pourtant mon programme ne dépend pas de son utilisateur et on est tous sur les mêmes configurations machines, même serveur etc.
0
mamiemando Messages postés 33446 Date d'inscription jeudi 12 mai 2005 Statut Modérateur Dernière intervention 20 décembre 2024 7 812
13 oct. 2005 à 09:41
Il faut que le service "net" soit lancé sur la machine destinataire et qu'elle n'ait pas de firewall pour qu'un net send fonctionne.

Euh pourquoi tu ne mets pas plutôt un système de messagerie instantanée en place au fait (irc, jabber) plutôt que d'utiliser des net send ?
0
BloodyAngel Messages postés 1482 Date d'inscription mardi 21 juin 2005 Statut Contributeur Dernière intervention 21 juin 2018 402
13 oct. 2005 à 22:25
Eh bien en fait, les net send fonctionnent toujours lorsqu'il sont lancés directement par commande. C'est lorsqu'ils sont appelés par mon programme qu'ils ne marchent pas toujours. Pourtant avant de lancer le net send, j'affiche la commande que je transmet à la fonction system() et c'est correct.

Et la raison pour laquelle je n'utilise pas de système de messagerie, c'est que c'est interdit par la société où je travaille :p
0