Comment exécuter la commande “export” sous Linux via Qt

Selon ma question, je ne parviens pas à exécuter la commande “export” sous Linux via Qt.

J’ai essayé QProcess, mais cela n’a pas fonctionné.

En fait, je dois définir l’adresse proxy dans le système d’exploitation Linux. La commande pour définir l’adresse proxy est la suivante:

$ export http_proxy=http://proxy-server.mycorp.com:3128/ 

Je veux exécuter cette commande via Qt. J’ai essayé d’utiliser QProcess, mais cela n’a pas fonctionné.

J’ai aussi essayé QProcessEnvironment comme mentionné ici .

Quelqu’un peut-il me suggérer un meilleur moyen d’exécuter cette commande?

Y a-t-il une autre manière de configurer Proxy Server sous Linux via Qt ??

Toute idée / suggestion serait très appréciée.

J’utilise Qt 4.7.4 (Impossible de passer à la version supérieure selon la politique de l’entreprise)

exportation n’est pas un fichier eucutable, le processus Qt utilise la fonction exec C, donc vous ne pouvez pas le faire, vous pouvez exécuter ls -l , mais l’exportation, définir, vous ne pouvez pas exécuter les commandes bash built-in . vous devez diriger utilise la fonction C pour environ-variable . si vous lisez l’ man getenv vous pouvez résoudre votre problème.

Pour votre cas, vous pouvez faire via la setenv C function

Comme mentionné ci-dessus; export n’est pas un fichier exécutable, c’est une commande bash intégrée . La variante exec fonctionne par nature, remplace l’image de processus en cours par une nouvelle image de processus. Par conséquent, vous ne pouvez utiliser que les variantes exec sur les programmes ou processus exécutables. Dans les systèmes d’ exploitation Unix / Linux , chaque processus possède ses propres variables d’environnement. Vous pouvez obtenir ces paires clé-valeur en lisant la variable environ , qui est déclarée dans le fichier d’en-tête unistd.h en tant que variable extern pointer-to-pointer.

Les variables d’environnement sont héritées par le processus enfant créé par le processus parent . Si vous utilisez putenv fonctions setenv / putenv pour créer une nouvelle variable d’environnement dans votre programme, cette nouvelle variable ne sera accordée que dans vos processus enfants parents et nesteds tant qu’ils ne sont pas sortis ou terminés. Si vous souhaitez rendre ces variables permanentes, vous devrez les définir dans un script de shell de démarrage.

Dans les systèmes Linux, bash exécute les fichiers de script suivants avant qu’ils apparaissent:

  • / etc / profile
  • / etc / bashrc
  • ~ / .bash_profile

Si vous intégrez vos variables d’environnement en tant que commandes export key=value dans le script shell, qui sera démarré par bash pour que votre programme principal s’exécute sur le dessus, vous pouvez y accéder depuis votre programme ou votre terminal lui-même.