2012-10-11 30 views
1

沒有發現試圖打開一個管以簡單的C程序GNUPLOT,與SH:gnuplot的:命令在Xcode

FILE *pipe=popen("gnuplot - persist", "w"); 

接收上述錯誤。我已經使用Macports安裝了Gnuplot,並且gnuplot命令可以直接使用bash終端,但我無法通過上面的代碼(sh)訪問它。

我已經嘗試添加一個.macosx與一個environment.plist文件(我在網上找到的建議),但我似乎無法得到任何工作(在代碼中使用Gnuplot的顯式位置似乎不工作我也是)。很抱歉,如果這是一個明顯的問題,我對編程非常陌生,我只想繪製一些圖表!謝謝

回答

1

你如何開始你的程序?你是否更改PATH變量? popen

printf("PATH=%s\n", getenv("PATH")); 

這是什麼結果?

2

如果使用MacPorts安裝,則gnuplot可能位於/ opt/local/bin/gnuplot中。但是你可以在Terminal裏查詢「哪個gnuplot」。嘗試

gnuplot = popen("/opt/local/bin/gnuplot --persist", "w"); 
if (gnuplot != NULL) 
    fprintf(gnuplot, "plot sin(1/x)\n"); 

例如。在「堅持」之前,您的命令字符串中有一個奇怪的空間。

+0

對我來說'whereis gnuplot'沒有找到gnuplot(不知道爲什麼),但'哪個gnuplot'工作得很好。 – mgilson

+0

我認爲「哪個」更合適,所以我編輯了我的答案。 「which」返回命令運行的文件; 「whereis」可能找不到硬編碼路徑列表中的文件。 –

+0

工程像魅力,謝謝! –