Нужно создать папку в /home/user в Linux, для этого нужно в коде прописать путь. Как получить имя этого user-а?
https://en.cppreference.com/w/cpp/utility/program/getenv
Имя пользователя, скорее всего, можно узнать как std::getenv("USER")
, хотя зачем, если std::getenv("HOME")
сразу даст домашний путь.
Функция getpwuid() возвращает указатель на структуру, содержащую поля строки из файла /etc/passwd для записи, совпадающей с идентификатором пользователя uid.
Структура passwd определена в файле следующим образом:
struct passwd {
char *pw_name; /* имя пользователя */
char *pw_passwd; /* пароль пользователя */
uid_t pw_uid; /* id пользователя */
gid_t pw_gid; /* id группы */
char *pw_gecos; /* настоящее имя */
char *pw_dir; /* домашний каталог */
char *pw_shell; /* программа-оболочка */
};
Это можно реализовать в два шага: получение идентификатора пользователя затем получение информации о пользователе по идентификатору:
errno = 0;
auto const uid{::geteuid()};
if(0 != errno)
{
// handle error
}
if(NO_UID == uid)
{
// handle error
}
errno = 0;
auto const p_info{::getpwuid(uid)};
if(0 != errno)
{
// handle error
}
if(nullptr == p_info)
{
// handle error
}
auto const psz_user_name{p_info->pw_name};
if(nullptr == psz_user_name)
{
// handle error
}
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Я использую контроллер ESP-32 и хочу передать std::shared_ptr, используя очередь FreeRTOSОднако, при этом теряется один указатель
Вот ссылка на англойязычную версиюНе могли бы Вы мне помочь, потому что советы на ссылочной версии не помогли: [https://stackoverflow
Подскажите пожалуйстаЕсть файл у меня settings