

No.2ベストアンサー
- 回答日時:
pythian さん、こんにちは。
> 例えばユーザの入力をPerlで受け、それをCに渡して実行させ、返って来た結果を再びPerlが受け取ってユーザに渡す。
いろいろなやり方がありますが、「ユーザの入力を C プログラムへの引数として渡す」ことを前提に、比較的簡単な方法として、以下のものはいかがでしょう。
例えば、Perl から ls コマンド(=C で書かれたプログラム)に引数としてオプションとパス名を渡し、得られた結果を1行ずつ読みとって Perl で処理することを考えます。
サンプルプログラムは、次のようになります。
open(CMD, "/bin/ls -l /var/log |") or die("Error: $!\n");
while (<CMD>) {
print ">>> ", $_;
}
close(CMD);
一般論として、/bin/ls が C のプログラム、-l /var/log がそれに渡す引数と思って下さい。また、最後の“|”は、「このプログラムの出力結果を CMD を通じて読み出す」ことを指示しています。これがポイントです。
得られた結果は、while (<CMD>) により、1行ずつ読み出されてきます。
ここでは、単に左に >>> を付加して表示させているだけですが、この部分を工夫すれば、お望みの処理ができると思います。
Perl と C の間で双方向の通信路(パイプライン)を張ってデータを受け渡すことも可能ですが、上の例に比べるとかなり複雑になります。
No.1
- 回答日時:
Perl は、よく知らないんですが、知っている範囲で。
Perl のモジュールのうち、幾つかは C で書かれています。多分、拡張モジュールと
呼ばれていると思います。
つまり、拡張モジュールを C で書けば、Perl の方からは、モジュールとしか見えません。
ただ、これには、そのための知識が必要になります。質問が出てきた背景を察するに
C を経験した開発メンバーは多数居るが、Perl を扱える開発メンバーが余り居ない、
というところから出てきた質問のように思えます。
「制御コマンドの発行」というのは socket 経由でどこかに通信ということでしょうか?
素直に Perl を教え込むのが一番の近道だと思います。
もしくは、C で実装したいことを、なるべく少ない種類のインターフェースで共通化
して、ある人間だけがその作業に特化する方法もあるでしょう。
# 苦労の割には、報われない気がします
この回答へのお礼
お礼日時:2001/11/29 22:35
UDPのsocketなんですが、Perlでやろうと格闘して諦めました(笑)。結局、Cで書いたものに引数として渡し、標準入力から戻ってきたものを利用しようと思います。アドバイスありがとうございました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
フォームを再送信しますか?
-
chatGPTみたいに画像生成出来る...
-
ChatGPTの性能は昔に比べて上が...
-
ChatGPT
-
ホームページにCGIを設置したの...
-
一番簡単なCGI,掲示板の設置教...
-
cgiの注釈が出来ない
-
ディープフェイクを作成するサ...
-
iDeCo
-
皆さんはGUCCIはハイブランドだ...
-
cgi-binのエラー?
-
Trees掲示板CGI(CGI-Resque氏...
-
めちゃきれい
-
number 改行が追加できない
-
生成AI画像について
-
3DCG
-
ホームページにメールフォーム...
-
cgi アクセス制限 エラー
-
CGIの記述について教えてくださ...
-
CGIの設置が分かりません・・・
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Perlプログラム上でアラートを表示
-
IISでエラー、Apachでは動くの...
-
Webからアクセスし、画面のボタ...
-
同じ階層内を意味する「./」を...
-
CGIファイルへのブラウザからの...
-
インターネット通信
-
cgi を定期的に自動実行
-
自分のcgiがとても重い
-
C言語でCGI
-
PHPとcgiの違い
-
CGIって何ですか?簡潔に教えて...
-
定期的にメールを送ってくれる...
-
EXCELファイルに誰がアクセスし...
-
KENT WEB(昨日の続きです)
-
《エクセルVBA》「他の人が該当...
-
CGIでソースがそのままでてしま...
-
FTPにて553エラー
-
ASPから既存のexcelブックを開...
-
VBAでサーバーにアクセスするに...
-
URLに~/cgi-bin/~を隠す方法
おすすめ情報