CGIからC言語プログラムを実行し、戻り値を標準出力以外で取りたいのですが?

[上に] [前に] [次に]
のどあめ 2000/02/15(火) 17:45:03
いつも利用させて頂いております。
質問なのですが、
現在ブラウザからCGIを呼んでC言語プログラムを実行し、戻り値を標準出力以外で取りたいのですが、他に戻り値を取る方法ってあるのでしょうか?

よろしくお願いします。

EMI 2000/02/15(火) 17:57:59
具体的には、一体何をやりたいのでしょうか?

ちなみに「Cとして」標準的な戻り値といえば、main関数の戻り値に決まってますが。(それをどうCGIに役立てるかは別として)

ラウォッチ 2000/02/15(火) 18:13:19
>戻り値を標準出力以外で取りたいのですが
ってことは、今は戻り値を標準出力しているのですか?
そんなこと、CGIでは、できないと思います。
もしかして、戻り値とは、ブラウザに出力するHTMLソースのこと???
あとは、EMIさんとおなじで、具体的には〜

のどあめ 2000/02/15(火) 18:19:08
EMI さん。有り難うございます。

漠然とした質問ですいません。
現在CプログラムをCGIで走らせているのですが、走ってC側で戻り値もセットして終了している所まで確認できるのですが、どうもCGI側で戻り値が取れてないのです。

標準出力で取っていることが原因なのでは?
という話が出てきたので質問した次第です。

標準出力だから取れないという原因はありえないのでしょうか?

変な質問ですいません。
よろしくお願いします。

のどあめ 2000/02/15(火) 18:35:22
ラウォッチ さんありがとうございます。
行き違えになってしまいました。
CGIでは、

open(IN, "Cプログラム $data1 $data2 |");
$buffer=<IN>;
close(IN);
($Data1,$Data2) = split(/=/,$buffer);

で、戻り値を$Data2に入るようにしています。
Windowsの簡易サーバーではOKだったのですが、Linuxサーバーに乗せかえると戻らないのです。。。

くううううう
何でなのかさっぱりわからないのです〜(T_T)

ラウォッチ 2000/02/15(火) 18:56:32
戻り値を使わないで、
Cプログラムの標準出力で最後に 「=戻り値」を付加したらどうですか〜
ただし、標準出力データ中に多数「=」があると誤動作しますが...。

EMI 2000/02/15(火) 19:37:29
えーと、確認したいのですが、使いたいのはmain関数の戻り値か、プログラムの出力結果かどっちですか?

[上に] [前に] [次に]