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

POSIX C Discussion :

Récupérer le nom de l'utilisateur sous linux


Sujet :

POSIX C

  1. #1
    Expert éminent
    Avatar de Michaël
    Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Juillet 2003
    Messages
    3 497
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux

    Informations forums :
    Inscription : Juillet 2003
    Messages : 3 497
    Points : 8 237
    Points
    8 237
    Par défaut Récupérer le nom de l'utilisateur sous linux
    bonjour,
    tout d'abord, je prog sous linux mdk 9.1 et compile avec gcc 3.2.2
    je voudrais récupérer le nom de l'utilisateur qui éxécute le programme, mais comment faire ? c'est pour en fait modifier un fichier dans son home, mais il me faut son nom

    merci

  2. #2
    Membre expérimenté Avatar de alexrtz
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juin 2003
    Messages
    639
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Juin 2003
    Messages : 639
    Points : 1 359
    Points
    1 359
    Par défaut
    Salut,

    Pour récupérer le répertoire dans un fichier texte :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    system("echo $HOME > fichier.text");
    "Je suis incapable d'expliquer ce qui se passa ensuite : je lâchai quelque chose, quelque chose à quoi je m'agrippais depuis toujours sans m'en rendre compte. Je m'enfonçais dans une obscurité chaude, moelleuse et protectrice, tandis qu'un loup montait la garde par mes propres yeux."

  3. #3
    Expert éminent
    Avatar de Michaël
    Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Juillet 2003
    Messages
    3 497
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux

    Informations forums :
    Inscription : Juillet 2003
    Messages : 3 497
    Points : 8 237
    Points
    8 237
    Par défaut
    ok merci mais si je veux directement affecter ce que retourne la commande system à une variable, ça ne passe pas
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    #include <stdio.h>
    #include <string.h>
     
    main()
    {
    char user[50];		//pour la gestion dynamique de mémoire, je verrai ça après
     
    user = system("echo $HOME");
    printf("%s", user);
    }
    avec ce code, gcc me dit
    fichier.c: In function `main':
    fichier.c:7: incompatible types in assignment
    j'ai bien compris ce qu'il dit, mais je ne vois pas comment régler ça

  4. #4
    Membre expérimenté Avatar de alexrtz
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juin 2003
    Messages
    639
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Juin 2003
    Messages : 639
    Points : 1 359
    Points
    1 359
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    char user[50];
    FILE *f;
     
    system("echo $HOME > fichier");
     
    f = fopen("fichier", "r");
    fgets(user, 50, f);
    fclose(f);
    "Je suis incapable d'expliquer ce qui se passa ensuite : je lâchai quelque chose, quelque chose à quoi je m'agrippais depuis toujours sans m'en rendre compte. Je m'enfonçais dans une obscurité chaude, moelleuse et protectrice, tandis qu'un loup montait la garde par mes propres yeux."

  5. #5
    Expert éminent
    Avatar de Michaël
    Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Juillet 2003
    Messages
    3 497
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux

    Informations forums :
    Inscription : Juillet 2003
    Messages : 3 497
    Points : 8 237
    Points
    8 237
    Par défaut
    ok merci
    mais comment faire pour ne pas indiquer une valeur bien précise à lire à fgets ? (une autre fonction qui lise jusqu'à \n ?)

  6. #6
    Responsable technique

    Avatar de Anomaly
    Homme Profil pro
    Directeur
    Inscrit en
    Juin 2003
    Messages
    10 338
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Somme (Picardie)

    Informations professionnelles :
    Activité : Directeur
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Juin 2003
    Messages : 10 338
    Points : 130 288
    Points
    130 288
    Billets dans le blog
    1
    Par défaut
    Pourquoi passer par system() alors que y'a une fonction toute prête pour lire l'environnement ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    #include <stdlib.h>
    const char* nom_user = getenv("HOME");
    Responsable technique forum & site

    Si ce message (ou un autre) vous a aidé et/ou vous semble pertinent, votez pour lui avec

  7. #7
    Expert éminent
    Avatar de Michaël
    Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Juillet 2003
    Messages
    3 497
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux

    Informations forums :
    Inscription : Juillet 2003
    Messages : 3 497
    Points : 8 237
    Points
    8 237
    Par défaut
    merci anomaly, c'est quand même plus simple comme ça

  8. #8
    Membre expérimenté Avatar de alexrtz
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juin 2003
    Messages
    639
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Juin 2003
    Messages : 639
    Points : 1 359
    Points
    1 359
    Par défaut
    Citation Envoyé par Anomaly
    Pourquoi passer par system() alors que y'a une fonction toute prête pour lire l'environnement ?
    Parce que je connaissais pas la fonction
    "Je suis incapable d'expliquer ce qui se passa ensuite : je lâchai quelque chose, quelque chose à quoi je m'agrippais depuis toujours sans m'en rendre compte. Je m'enfonçais dans une obscurité chaude, moelleuse et protectrice, tandis qu'un loup montait la garde par mes propres yeux."

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [VB.NET] Récupérer le nom de l'utilisateur
    Par olbi dans le forum Windows Forms
    Réponses: 3
    Dernier message: 09/10/2006, 01h10
  2. Récupérer les noms et sources de sous formulaire
    Par lerico dans le forum Access
    Réponses: 6
    Dernier message: 24/07/2006, 14h41
  3. [C++]Récupérer le nom de l'utilisateur.
    Par The Lord of Nesquik dans le forum Windows
    Réponses: 1
    Dernier message: 17/06/2006, 20h31
  4. Réponses: 1
    Dernier message: 19/01/2006, 16h23
  5. Réponses: 3
    Dernier message: 07/05/2004, 10h01

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