2017-04-10 72 views
0

我试图使用POPEN在64位Windows指定到C文件路径: Program Files文件(x86)的 gnuplot的 C编程使用Geany

在我的C程序中使用已安装gnuplot.exe斌我使用的例子我如下

FILE *gnuplot = popen("C:\\Program Files (x86)\\gnuplot\\bin\\gnuplot.exe", "w"); 

然而,文件路径是不是在Windows命令行 承认我使用Geany在windows这给下面的输出。

[enter image description here]

如何让C程序得到正确的文件路径?

+0

取得了不真正了解这个话题了,从我可以告诉,'popen'是一个posix命令,所以我希望它可能只适用于posix路径,而不是你喜欢的Windows路径。 –

+0

@RandomDavis SO说这是可能的。 POSIX支持http://stackoverflow.com/questions/450865/what-is-the-equivalent-to-posix-popen-in-the-win32-api。编译器也不会抛出未知的命令错误。它编译并构建并成功执行。 – AAI

+1

我没有看到任何问题,说posix版本的'popen'支持Windows路径。另外,它当然会很好,毕竟它是一个运行时错误。 –

回答

0

popen需要一个shell命令,所以你要传递

"C:\Program Files (x86)\gnuplot\bin\gnuplot.exe" 

这是使用

popen("\"C:\\Program Files (x86)\\gnuplot\\bin\\gnuplot.exe\"", "w") 
+0

不起作用(“\”C:\\ Program Files(x86)\\ gnuplot \\ bin \\ gnuplot.exe“”,“w”); - 编译错误。然而,popen(“\'C:\\ Program Files(x86)\\ gnuplot \\ bin \\ gnuplot.exe'”,“w”);编译但说目录名称语法不正确 – AAI

+1

您错过了'\'。 ///嗯,是的,'C:\\ Program'不是一个有效的路径。 – ikegami

+0

你的意思是最后一个“\”。请解释“\”是什么意思,因为popen必须使用.exe打开文件名,而不是搜索超出该字符的文件。谢谢。 – AAI

相关问题