【问题标题】:Check whether a path is absolute or relative检查路径是绝对路径还是相对路径
【发布时间】:2011-11-25 20:02:50
【问题描述】:

如何在 Linux 上使用 C 检查路径是绝对路径还是相对路径?

【问题讨论】:

  • 你到底在做什么需要知道的?
  • 处理 #include "..." 指令,特别是检查 .c 文件的目录是否需要添加到给定路径之前。
  • 实际上,你应该小心这个特殊的用例。 C 标准中#include<>"" 变体都有实现定义的搜索头文件的方式,不一定是你想的那样。
  • 标准规定"" 应该在尝试<> 路径之前尝试定义的实现。在 GCC 和 Microsoft 编译器的情况下,某些东西正在尝试给定的绝对路径,或相对于包含文件目录的给定路径。你还有什么想法?
  • 哦。您想检查源代码并确保它适合包含路径吗?您的问题意味着想要编写执行检测的代码,这是完全不同的。 :)

标签: c linux path


【解决方案1】:

绝对路径往往以/ 字符开头。其他任何东西都与工作目录相关。

即使是带有.. 序列的目录,如果它们以/ 开头,也被认为是绝对的,因为它们最终位于文件系统中的相同位置(除非您更改链接和其他内容,但这超出了绝对和相对的讨论范围)。

【讨论】:

    【解决方案2】:

    如果它以/ 开头,则为绝对值,否则为相对值。

    【讨论】:

      【解决方案3】:

      检查路径是否以/ 开头。如果路径以/ 开头,则可以假定它是绝对路径。

      【讨论】:

        【解决方案4】:

        检查路径是否以 / 开头。如果路径以 / 开头,您可以假设它是绝对的,否则它是相对的意味着它将从 pwd(当前工作目录)更新 但在绝对情况下,路径将相对于根目录更新

        【讨论】:

          猜你喜欢
          • 2014-03-09
          • 2011-10-16
          • 2015-11-13
          • 2019-09-09
          • 1970-01-01
          • 2018-09-17
          • 1970-01-01
          • 2012-08-24
          • 2013-12-10
          相关资源
          最近更新 更多