Определение стандартного расположения файлов в Linux - PullRequest
2 голосов
/ 10 июля 2011

Существует ли стандартный способ определения местоположения файлов в Linux?Более того, существуют ли какие-либо API POSIX, которые позволяют извлекать стандартные местоположения файлов?

Например, как я могу определить домашний каталог пользователя?Или как определить правильное расположение файлов конфигурации системы?

Я знаю, что обычно это "/ home / username" или "/ etc /".Должен ли я просто жестко закодировать пути как таковые?

Ответы [ 3 ]

4 голосов
/ 10 июля 2011

Путь к домашнему каталогу текущего пользователя находится в переменной среды HOME.(Я знаю системы, в которых домашние каталоги распределены по нескольким разделам (скажем, /vol/vol[number]/[first letter]/[user name]) и не расположены в /home/.)

Для других пользователей есть getpwentgetpwent_r), которыеизвлеките домашний каталог из записи passwd.

Для других каталогов существует Стандарт иерархии файловой системы , которого придерживается большинство дистрибутивов Linux, а также некоторые другие OSen.

Не думаю, что для этого есть API.Таким образом, если система работает по-другому, вы сами по себе - удачи!; -)

1 голос
/ 10 июля 2011

Домашний каталог текущего пользователя находится в переменной среды HOME.Для других пользователей вы можете использовать функции getpwnam или getpwuid (или варианты _r) для поиска домашнего каталога другого указанного пользователя, среди прочего.

0 голосов
/ 10 июля 2011

Я знаю, что вы не спрашивали об этом, однако, если вы хотите найти местоположение исполняемого файла, вы можете использовать which

...