No.1ベストアンサー
- 回答日時:
Openでパイプを使って起動した子プロセスには、環境変数は全てコピーされるはずです。
どの変数が消えたり変ったりしてますか?> 環境変数(IPアドレスとか、POSTデータ)
CGIパラメーターが環境変数として渡されるのは GETメソッドの場合です。 (GETメソッドの場合、URL上でも xxxx?a=1&b=2 の様にパラメーターを表現できます)
POSTメソッドの CGIパラメーターは、STDIN から入力します。 だから、これを子プロセスに引き継ぐには、それなりの工夫が必要です。
工夫というと、例えば以下のいずれかです。
・ 親が STDIN を読む前に子プロセスを起動する。
・ 親は入力した STDIN を記憶しておき、子プロセスの起動後に記憶内容をパイプで渡す。 子プロセスの STDOUT を親がパイプで読みたいなら、さらに面倒。 (パイプ指定の open() だけでは STDIN/STDOUT 両方のパイプは多分不可)
いずれの場合も、CGI.pm なんかを親が使うとまずいかも知れません。
ありがとうございます。下のような感じでできました・・・。
open (IN, "perl C:\\test\\hoge.cgi|");
while ( $line = <IN>) {
print $line;
}
close(IN);
が・・・実をいえば、実現したいことは、
CGIでHTMLファイルを読み込んで、その中のSSIを解析し、それをCGI上で実現することなんです。
上のような方法で、
<!--#exec cmd="test.cgi" -->
という記述をCGIで認識してそれを実行し出力することには成功しました。
また、環境変数もきちんと渡せていました。
しかし・・・例えば、test.cgi?a=bのようにパラメータをつけての実行はできませんでした。
一応、CGIからCGIを実行することには成功しましたので、
あらためて質問をたてさせていただきます。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- CGI CGIで出力するhtmlの<!DOCTYPE html>等のタグは要りますか? 2 2023/02/05 21:26
- ホームページ作成・プログラミング CGIが実行可能なHP領域又はレンタルサーバーでおすすめの所を教えてください 現在ホームページ領域の 1 2023/01/01 11:47
- CGI htmlからパラメータで、cgiに渡したい。 1 2023/02/06 16:15
- CGI perlで書いたcgiでsqliteの使い方を教えてください 2 2023/05/08 21:29
- CGI (フリーの)ツリー掲示版CGI、昔は多用させてもらいましたが・・今セキュリティ上どうでしょう? 2 2023/06/25 07:18
- CGI CGIが読み書きするデータファイルのパーミッションはさくらのインターネットでは何にするべき? 1 2023/05/02 16:44
- Perl perlでリテラル値はメモリにどのように格納されているか? 1 2023/01/15 20:45
- CGI サイト訪問者の情報を取得したい 1 2023/02/21 11:03
- CGI 「CGIにより定義されていない」とは・・・ ? 3 2023/01/01 12:00
- Perl perlの構文でカンマの意味が分からない 2 2022/10/30 01:53
関連するカテゴリからQ&Aを探す
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
バックグラウンドのプロセスの...
-
explorer.exeが異様にメモリを食う
-
WindowsAPIのCreateFile関数ま...
-
誤ってプロセスの終了をしてし...
-
forkについて
-
パソコン起動時に勝手にメール...
-
sleep関数の精度について
-
OSPFでプロセスを分ける意義に...
-
VBでエクセルを起動し、プロ...
-
VB.NETで起動したExcelの閉じ方...
-
タスクマネージャーのプロセス...
-
IISがフリーズ
-
popen について
-
親子プロセス間でのデータの受...
-
Windowsでのfork方法
-
VBからのACCESSの起動...
-
VB6.0 SHELLで起動...
-
SendMessageが失敗するときがある
-
VBSからbat実行(WMI)して戻り値...
-
conime.exeってウイルスですか?
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
バックグラウンドのプロセスの...
-
explorer.exeが異様にメモリを食う
-
タスクマネージャーのプロセス...
-
VB6.0 SHELLで起動...
-
C#でのbatファイル実行結果取得
-
プロセスのアタッチ・デタッチ...
-
プロセスIDからウィンドウハ...
-
プロセスIDの取得方法について
-
popen について
-
C++のプログラムをバックグラウ...
-
非表示になったエクセルは?
-
Windowsでのfork方法
-
別のプロセスの関数を呼び出す...
-
sleep関数の精度について
-
Visual C++からpingを実行して...
-
ADOでアクセスのレコードに...
-
C++でシェルを起動
-
SendMessageが失敗するときがある
-
ウィンドウのタイトルからプロ...
-
OSPFでプロセスを分ける意義に...
おすすめ情報