Je dois écrire un document dans le repertoire /HOME à partir d'un programme.
comment puis-je déterminé l'utisateur?![]()
Je dois écrire un document dans le repertoire /HOME à partir d'un programme.
comment puis-je déterminé l'utisateur?![]()
Tout ce qui ressemble de près ou de loin à who ou whoami peut t'aider.
Sinon, en shell, il y a l'expansion du tildé ... ~ désigne le homedir de l'utilisateur courant, ~user désigne le homedir de l'utilisateur user.
Bon courage.
La FAQ Perl est par ici
: La fonction "Rechercher", on aurait dû la nommer "Retrouver" - essayez et vous verrez pourquoi !
salut
il me semble que la commande whoami indiquee par 2Eurocents va tout simplement chercher la variable d'environnement $USER non ?
comme le dit 2Eurocents, le '~' désigne le home de l'utilisateur
ça, c'est quand on est dans l'environnement console, sous un shell quelconque. je sais par experience que cet alias pour la variable $HOME n'est pas valable partout (perso j'en ai fait l'experience en Java, dans un fichier de compilation Ant : ~ ne fonctionnait pas).Envoyé par narmataru
==> pour resumer, ton probleme a 2 solutions :
- $HOME est la variable d'environnement qui represente le repertoire perso de l'utilisateur courant
- $USER est la variable d'environnement qui represente l'utilisateur courant
il ne te reste plus qu'à recuperer les variables d'environnement dans ton langage hôte ;-)
Pour ce qui est du '~', j'avais bien précisé qu'il s'agissait de shell 8).
Sinon, il 'whoami', qui est une commande shell, tout comme 'id' (bien, aussi), ne devrait pas retourner le contenu de variables d'environnement, et je pense qu'elle ne le fait pas.
Ce serait un comportement dangereux
(USER=toto, et paf, on peut pas écrire chez toto, parce qu'on est titi, ou alors, on peut parce que les permissions le permettent et on fout le bazar ...).
Donc, je déconseille formellement la lecture de ces variables d'environnement, ou alors, ne pas considérer ces informations comme fiables - franchement, vous faites confiance, vous, à des informations qui peuvent provenir de l'utilisateur ???![]()
Ensuite 'whoami', et 'id', à mon humble avis, effectuent directement un appel système.
Faire le même appel dépend du langage d'implémentation, mais le faire en C, ça se fait avec 'getlogin' ou 'cuserid' (#include <unistd.h> et tutti quanti ...).
La FAQ Perl est par ici
: La fonction "Rechercher", on aurait dû la nommer "Retrouver" - essayez et vous verrez pourquoi !
Merci 2Eurocent! C'est en plein ce que je cherchai!![]()
Et merci autre, car cela couvre les autre cas de figure. 8)
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager