Jak pobrać katalog domowy użytkownika w systemie Linux
#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.
"Nie tyle chodzi o sam katalog domowy tylko o prawidłowy sposób pobierania struktury passwd, "
A nie lepiej pobrać ze zmiennej środowiskowej?