在Linux下确定标准文件位置

时间:2011-07-09 23:16:25

标签: linux unix filesystems posix freebsd

在Linux下是否有标准的方法来确定文件位置?更好的是,是否有任何POSIX API允许检索标准文件位置?

例如,如何确定用户的主目录?或者,如何确定系统配置文件的正确位置?

我知道这些位置通常是“/ home / username”或“/ etc /”。我应该只修改这些路径吗?

3 个答案:

答案 0 :(得分:4)

当前用户主目录的路径位于环境变量HOME中。 (我知道主目录分布在多个分区上的系统(比如/vol/vol[number]/[first letter]/[user name])而不是/home/。)

对于其他用户,有getpwent(和getpwent_r),它从passwd条目中提取主目录。

对于其他目录,有File System Hierarchy Standard,大多数Linux发行版都遵守这些目录,还有其他一些OSen。

我认为没有这方面的API。因此,如果一个系统以不同的方式做事,你就是靠自己 - 祝你好运! ; - )

答案 1 :(得分:1)

可以在HOME环境变量中找到当前用户的主目录。对于其他用户,您可以使用getpwnam or getpwuid functions(或_r变体)查找另一个指定用户的主目录等。

答案 2 :(得分:-1)

我知道您没有问过这个问题,但是如果您想查找可执行文件的位置,可以使用which