【问题标题】:linux/solaris expand path c++linux/solaris 扩展路径 c++
【发布时间】:2013-01-29 23:01:17
【问题描述】:

我想要一个扩展所有传递给它的环境变量的函数。当调用转换(假设 $HOME=MyHome)“$HOME/foo $HOME/bar ~myname”到“/MyHome/foo /MyHome/bar /usr/xyz/myname”时,我发现了各种各样的东西将相对路径扩展到绝对路径,但我还没有找到任何完全符合我要求的东西。我希望以前已经这样做过,但我找不到。

【问题讨论】:

  • 在我的 solaris 机器上不存在。
  • @juanchopanza 他必须手动进行解析(虽然实际上,如果只是替换 $var 和 ~,解析应该非常简单)。 At dale:你确定 Solaris 没有 wordexp 吗?我对 Solaris 不是很熟悉,但它倾向于非常接近 POSIX,对吧?
  • 嗯,你能在所有包含文件夹中搜索wordexp.h吗?也许它只是不是你所期望的。它实际上可能在posix/wordexp.h 而不仅仅是wordexp.h。我实际上是要建议你从 glibc 借代码,但是在找到它之后,这似乎是一条糟糕的路线。 glibc 中的 wordexp 代码为 53KB(尽管就 glibc 而言,它实际上并不那么神秘)。
  • @Corbin Weird,我发誓我看过,你是对的。它存在,我会使用它。

标签: c++ linux filepath


【解决方案1】:

在 Corbin 的 cmets 中回答: """ 嗯,您可以在所有包含文件夹中搜索 wordexp.h 吗?也许它只是不是你所期望的。它实际上可能在 posix/wordexp.h 中,而不仅仅是 wordexp.h。我实际上是要建议你从 glibc 借代码,但是在找到它之后,这似乎是一条糟糕的路线。 glibc 中的 wordexp 代码为 53KB(尽管就 glibc 而言,它实际上并不那么神秘)。 """

【讨论】:

  • 您需要在 Solaris 上为标头安装 SUNWhea 包,该函数 (POSIX.2001) 十多年来一直是 Solaris libc 的一部分。您还可以从 Gnulib 中提取代码和标头,而不是通过 glibc(让自己做噩梦):gnu.org/software/gnulib
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-05-21
  • 2019-09-01
  • 1970-01-01
  • 1970-01-01
  • 2017-06-22
  • 2015-11-15
相关资源
最近更新 更多