

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のフォームを...
-
フォームを再送信しますか?
-
utf-8で作成した。formmailのht...
-
FFFTPでcgiファイルだけ反映さ...
-
入力フォーム(電話番号)
-
メールフォームのCGI設定に...
-
iDeCo
-
皆さんはGUCCIはハイブランドだ...
-
cgi-binのエラー?
-
Trees掲示板CGI(CGI-Resque氏...
-
めちゃきれい
-
number 改行が追加できない
-
生成AI画像について
-
3DCG
-
ホームページにメールフォーム...
-
cgi アクセス制限 エラー
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
エクセルで集計したい。
-
ChatGPT
-
フォームを再送信しますか?
-
ChatGPTの性能は昔に比べて上が...
-
chatGPTみたいに画像生成出来る...
-
apacheでPerl CGIが作動せず、5...
-
入力フォーム(電話番号)
-
ホームページでCGIのフォームを...
-
ラズパイでのCGIで、pythonソー...
-
CGI.pmはもう古い!?
-
POSTメソッドの最大容量について
-
CGIで得た内容をHTMlページに代入
-
古ーくからフリーのtree.cgi掲...
-
サイト訪問者の情報を取得したい
-
htmlからパラメータで、cgiに渡...
-
cgiの注釈が出来ない
-
cgi-binのエラー?
-
さくらサーバーにcgiフォームを...
-
クッキーが別PCで共有されてしまう
-
ホームページにメールフォーム...
おすすめ情報