在Linux下是否有标准的方法来确定文件位置?更好的是,是否有任何POSIX API允许检索标准文件位置?
例如,如何确定用户的主目录?或者,如何确定系统配置文件的正确位置?
我知道这些位置通常是“/ home / username”或“/ etc /”。我应该只修改这些路径吗?
答案 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