C De La Programmation. L'impression de l'utilisateur courant
Dans la programmation en C, comment obtenez-vous l'utilisateur actuel et le répertoire de travail courant.
Je suis en train d'imprimer quelque chose comme ceci:
asmith@mycomputer:~/Desktop/testProgram:$
(user) (computerName) (current directory)
J'ai le code suivant, mais le nom d'utilisateur est affiché comme étant NULLE. Les idées de ce que je fais mal?
void prompt()
{
printf("%s@shell:~%s$", getenv("LOGNAME"), getcwd(currentDirectory, 1024));
}
pourquoi il n'est pas de programmation relative.. 😛
désolé c'est la programmation... j'ai fait une erreur en ajoutant la balise
Je suis sur un environnement unix. Effectivement la façon dont je l'ai eu a bien fonctionné sur le terminal. Je viens de montrer la valeur null lorsque compilé directement depuis Eclipse. getlogin aussi a bien fonctionné. Merci à tous
désolé c'est la programmation... j'ai fait une erreur en ajoutant la balise
Je suis sur un environnement unix. Effectivement la façon dont je l'ai eu a bien fonctionné sur le terminal. Je viens de montrer la valeur null lorsque compilé directement depuis Eclipse. getlogin aussi a bien fonctionné. Merci à tous
OriginalL'auteur user69514 | 2009-09-20
Vous devez vous connecter pour publier un commentaire.
Notez que cela fonctionnera sur un système unix.
peut-être LOGNAME n'a pas été défini comme votre variable d'environnement
vous pouvez voir les variables d'environnement à l'aide de la
printenv
commandeÉgalement fait le travail.
mais comme mentionné, vous ne devriez pas compter sur les variables d'environnement, utilisez plutôt la norme c fonctions.Si vous voulez vraiment utiliser, assurez-vous d'abord qu'il est défini.
OriginalL'auteur sud03r
Hormis le fait que vous devriez être en utilisant la variable d'environnement
USER
au lieu deLOGNAME
, vous ne devriez pas être à l'aide de variables d'environnement pour ce en premier lieu. Vous pouvez obtenir l'ID de l'utilisateur courant avecgetuid(2)
et le courant efficace de l'ID d'utilisateur avecgeteuid(2)
, et ensuite utilisergetpwuid(3)
pour obtenir le nom d'utilisateur le nom d'utilisateur dans le fichier passwd:Pour obtenir le nom de l'ordinateur actuel, l'utilisation
gethostname(2)
:OriginalL'auteur Adam Rosenfield
Sur les systèmes de type unix, utilisez la fonction getlogin de unistd.h.
OriginalL'auteur sepp2k
Ce n'est pas un C question, mais est plus comme un UNIX question. Il n'existe pas de portable, de manière à obtenir des nom d'utilisateur et répertoire de travail courant dans C langue.
Cependant, par la consultation de votre exemple, je peux dire que vous essayez d'imprimer le nom d'utilisateur UNIX et le répertoire de travail courant.
Si vous avez besoin d'répertoire de travail courant dans UNIX vérifier getcwd fonction.
Si vous avez besoin de nom d'utilisateur, vous pouvez soit appeler un distinct whoami processus au sein de votre C programme, ou consultez le getuid appel de la fonction.
OriginalL'auteur Pablo Santa Cruz
Cela va être de la plate-forme, comme il n'existe pas de façon intrinsèque dans le langage de programmation C pour ce faire.
On dirait que vous êtes sur un système de type Unix, vous voudrez probablement pour obtenir la variable d'environnement
USER
ce qui est généralement le nom d'ouverture de session.OriginalL'auteur bobbymcr
vous pouvez également utiliser
OriginalL'auteur Madhusoodan P