Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/155.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/linux/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ linux/solaris扩展路径c++;_C++_Linux_Filepath - Fatal编程技术网

C++ linux/solaris扩展路径c++;

C++ linux/solaris扩展路径c++;,c++,linux,filepath,C++,Linux,Filepath,我希望有一个函数可以扩展传递给它的所有环境变量。当调用transforms(假设$HOME=MyHome)“$HOME/foo$HOME/bar~myname”到“/MyHome/foo/MyHome/bar/usr/xyz/myname”时,我发现了各种将相对路径扩展到绝对路径的方法,但我还没有找到任何完全符合我要求的方法。我想这以前已经做过了,但我找不到 在科尔宾的评论中回答: """ 嗯,你能在你所有的include文件夹中搜索wordexp.h吗?也许这不是你所期望的。它可能在posix

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

在科尔宾的评论中回答: """
嗯,你能在你所有的include文件夹中搜索wordexp.h吗?也许这不是你所期望的。它可能在posix/wordexp.h中,而不仅仅是wordexp.h。我实际上是想建议你从glibc那里借用代码,但在刚刚找到它之后,这似乎是一条糟糕的路线。glibc中的wordexp代码是53KB(尽管就glibc而言,它实际上并没有那么神秘)。

在我的solaris机器上不存在。@juanchopanza他必须手动对此进行解析(尽管实际上,如果只是替换$var和~,解析应该非常简单)dale:你确定Solaris没有wordexp吗?我对Solaris不太熟悉,但它倾向于与POSIX非常接近,对吗?嗯,你能在你所有的包含文件夹中搜索
wordexp.h
?也许这不是你期望的地方。它可能在
POSIX/wordexp.h
中,而不是在
wordexp.h
中>。我实际上是想建议你从glibc那里借用代码,但在找到它之后,这似乎是一条糟糕的路线。glibc中的wordexp代码是53KB(尽管就glibc而言,它实际上没有那么神秘)@Corbin-wird,我发誓我看了,你是对的。它是存在的,我会用它。你需要在Solaris上有
SUNWhea
包作为头文件,该函数(POSIX.2001)是Solaris libc的一部分,已经有十多年了。你也可以从Gnulib中提取代码和头文件,而不是通过glibc(让自己做噩梦):