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 :

wget sans system(char*)


Sujet :

C++

  1. #1
    Membre du Club
    Inscrit en
    Août 2007
    Messages
    125
    Détails du profil
    Informations forums :
    Inscription : Août 2007
    Messages : 125
    Points : 53
    Points
    53
    Par défaut wget sans system(char*)
    Bonjour,
    dans le cadre d'un système multi-thread, j'utilise la commande system(char *) pour appeler un wget (sous unix).

    Toutefois, quelqu'un m'a dit: "c'est dangereux, un tiers peut récupérer ta fenêtre de terminal et donc prendre le contrôle...".
    Et sur le forum, j'ai vu quelqu'un qualifier cela de "barbare".

    Voici donc mes questions:
    - Pourquoi est-ce barbare et/ou dangereux ?
    - Auriez vous un exemple d'utilisation (ou autre solution que wget si aussi simple) d'appel de wget à partir des sources ?

    Merci par avance.

    Cordialement,
    MilacH

  2. #2
    Membre du Club
    Inscrit en
    Août 2007
    Messages
    125
    Détails du profil
    Informations forums :
    Inscription : Août 2007
    Messages : 125
    Points : 53
    Points
    53
    Par défaut
    pas de réponse ...
    J'en déduis que ce n'est pas un problème si triviale ^^

  3. #3
    Invité(e)
    Invité(e)
    Par défaut
    Bonjour,
    Citation Envoyé par milach Voir le message
    - Pourquoi est-ce barbare et/ou dangereux ?
    La commande system va souvent ouvrir un nouveau terminal. Si à la base ton application est graphique, ça peut faire bizarre de voir une fenêtre s'ouvrir. (C'est le cas sous windows, sous unix, je ne sais pas).

    Imaginons que ton programme serve à cascader des téléchargements : tu le lances, tu pars au café, quelqu'un peut venir sur ton post et fermer les fenêtre qu'il voit s'ouvrir les unes après les autres.
    Citation Envoyé par milach Voir le message
    - Auriez vous un exemple d'utilisation (ou autre solution que wget si aussi simple) d'appel de wget à partir des sources ?
    fork + exec (je ne crois que ça ouvre un nouveau terminal), mais à tester
    libcurl : la bibliothèque utilisée par cUrl (grosso modo un wget like cf : http://daniel.haxx.se/docs/curl-vs-wget.html)

  4. #4
    Expert confirmé

    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2007
    Messages
    1 895
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Septembre 2007
    Messages : 1 895
    Points : 4 551
    Points
    4 551
    Par défaut
    fork + exec est effectivement la route à prendre pour créer un processus à partir d'un exécutable. Ca n'ouvre pas de shell, ni de console (exec remplace l'image du processus par une nouvelle, c'est pourquoi fork est nécessaire avant ; le nouveau processus hérite des file descriptors ouverts dans le parent).

    Sinon, il y a quantité de librairies qui fournissent des moyens d'aller querir un fichier via le protocole HTTP.

    Sous Windows, il faut utiliser la famille de fonction spawn, ou CreateProcess().

Discussions similaires

  1. umount dans un programme C sans system(umount)
    Par billy242 dans le forum C
    Réponses: 2
    Dernier message: 31/05/2010, 17h21
  2. exéctuer un programme sans systeme d'exploitation
    Par Bornerdogge dans le forum C
    Réponses: 18
    Dernier message: 18/06/2007, 17h29
  3. [MS-SQL]Affichage incorrect : System.Char[]
    Par the big ben 5 dans le forum Bases de données
    Réponses: 10
    Dernier message: 30/11/2005, 09h52
  4. Ré-installation (du systeme) sans formatage, possible ?
    Par __fabrice dans le forum Administration système
    Réponses: 11
    Dernier message: 11/04/2005, 13h32
  5. Réponses: 1
    Dernier message: 20/08/2004, 10h16

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