Programowanie w języku C/C++ » FAQ

Jak pobrać katalog domowy użytkownika w systemie Linux

  • 2008-03-04 11:03
  • 2 komentarze
  • 1976 odsłon
  • Oceń ten tekst jako pierwszy
#include <unistd.h>
#include <sys/types.h>
#include <pwd.h> 
// ...
 
  char* pwdbuffer;
  struct passwd pd;
  struct passwd* tempPwdPtr;
  long ile=sysconf(_SC_GETPW_R_SIZE_MAX);
  pwdbuffer=(char*)malloc(ile);
  if(pwdbuffer){
    if(!getpwuid_r(getuid(),&pd,pwdbuffer,ile,&tempPwdPtr)){
      print("%s\n",pd.pw_dir);
    }
    free(pwdbuffer)
  }


Nie tyle chodzi o sam katalog domowy tylko o prawidłowy sposób pobierania struktury passwd, zwłaszcza w programie wielowątkowym.

2 komentarze

Coldpeer 2007-10-25 14:54

"Nie tyle chodzi o sam katalog domowy tylko o prawidłowy sposób pobierania struktury passwd, "

elwis 2007-10-25 07:14

A nie lepiej pobrać ze zmiennej środowiskowej?