确定 Linux 下的标准文件位置

发布于 2024-11-19 07:00:26 字数 159 浏览 4 评论 0原文

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

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

我知道这些位置通常是“/home/username”或“/etc/”。我应该对路径进行硬编码吗?

Is there a standard way of determining file locations under Linux? Even better, are there any POSIX API's which allow the retrieval of standard file locations?

For example, how can I determine a user's home directory? Or, how can I determine the proper location for system configuration files?

I know that typically these locations would be "/home/username" or "/etc/". Should I just hardcode the paths as such?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

颜漓半夏 2024-11-26 07:00:26

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

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

对于其他目录,有大多数 Linux 发行版都遵守的文件系统层次结构标准以及其他一些目录欧森也一样。

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

The path to the current user's home directory is in the environment variable HOME. (I know systems where home dirs are spread over several partitions (say, /vol/vol[number]/[first letter]/[user name]) and not located in /home/.)

For other users, there's getpwent (and getpwent_r), which pull the home directory from the passwd entry.

For the other directories, there is the File System Hierarchy Standard, which most Linux distros adhere to and some other OSen as well.

I don't think there's an API for this. Thus, if a system does things differently, you're on your own -- good luck! ;-)

倾城花音 2024-11-26 07:00:26

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

The current user's home directory can be found in the HOME environment variable. For other users, you can use the getpwnam or getpwuid functions (or the _r variants) to look up another specified user's home directory, among other things.

原野 2024-11-26 07:00:26

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

I know that you didn't ask this, however if you're looking to find the location of an executable, you can use which

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文