Я написал оболочку, и всякий раз, когда пользователь дает аргумент типа cd -blabla, он меняет каталог на bla bla. Но когда я ввожу cd, я хочу, чтобы он перешел в мой домашний каталог. Назначить мой домашний каталог очень просто. Я просто написал, где находится дом для терминала. чтобы найти свой домашний каталог, но я могу изменить свой домашний каталог. Если я введу свой адрес в функцию chdir () вручную, он всегда будет переходить в этот каталог. Как мне найти самый обновленный домашний каталог в C? (который меняется каждый раз Я меняю свой домашний каталог)
Поиск моего домашнего каталога в C / Unix
Ответы (1)
Вы должны посмотреть pwd.h
. Вы можете получить информацию о пользователе по UID или имени.
Пример по id
struct passwd *info = getpwuid(1000);
Измените 1000 на нужный вам UID. Вы можете использовать getuid (), определенный в unistd.h, чтобы получить текущего пользователя.
Поле
info->pw_dir
Содержит домашний путь пользователя.
person
mame98
schedule
13.03.2016
HOME
или прочитатьpasswd
db, чтобы получить запись в каталоге пользователя. - person Jean-Baptiste Yunès   schedule 12.03.2016