Langage C: comment définir une variable d'environnement lors de l'utilisation de system() pour exécuter une commande
Je suis en train d'écrire un programme en C sous Linux et besoin pour exécuter une commande avec system()
, et la nécessité de définir une variable d'environnement lors de l'exécution de cette commande, mais je ne sais pas comment définir l'env var lors de l'utilisation de system()
.
system("var=val cmd") n'est-ce pas le travail?
L'argument de
$ EXEMPLE=test env|grep EXEMPLE --> EXEMPLE=test --> Cela semble fonctionner dans la coque...
L'argument de
system
est juste une ligne de commande shell. Donc, vous réglez de la même manière que vous le feriez dans le shell.$ EXEMPLE=test env|grep EXEMPLE --> EXEMPLE=test --> Cela semble fonctionner dans la coque...
OriginalL'auteur Wang Tuma | 2014-04-17
Vous devez vous connecter pour publier un commentaire.
Si vous souhaitez passer une variable d'environnement pour votre enfant qui est différent de l'objet parent, vous pouvez utiliser une combinaison de
getenv
etsetenv
. Dites, vous voulez passer un autrePATH
à votre enfant:Sinon, si vous êtes simplement à la création d'une nouvelle variable d'environnement, vous pouvez utiliser une combinaison de
setenv
etunsetenv
, comme ceci:Et n'oubliez pas de vérifier les codes d'erreur, bien sûr.
OriginalL'auteur user703016
Cela devrait fonctionner:
sorties
system()
plusieurs fois, vous pouvez définir plusieurs variables, mais ne peut pas voir les variables que vous avez défini pour un appel donné dans le appels pour d'autres!)OriginalL'auteur nikpel7
Utilisation
setenv()
api pour la définition des variables d'environnement sous LinuxReportez-vous à http://www.manpagez.com/man/3/setenv/ pour plus d'informations.
Après la définition des variables d'environnement à l'aide de
setenv()
utilisationsystem()
pour exécuter n'importe quelle commande.OriginalL'auteur Rahul R Dhobi