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, "