• ベストアンサー

perlからcを呼び出す

perl初心者です。すごく困っています。 perl上の数値をcプログラムで呼び込んで処理して処理結果をperlに返す、という処理がわからず困っています。誰か教えていただけませんか? 具体的にはperl上での社員の名簿のID(数字)をcでe-mailアドレスにしてperlに返すという感じです。 よろしくお願いします。

  • Perl
  • 回答数4
  • ありがとう数1

質問者が選んだベストアンサー

  • ベストアンサー
  • tatsu99
  • ベストアンサー率52% (391/751)
回答No.3

perlから実行モジュールを呼び出し、実行モジュールが標準出力に、出力した内容を、perl側で取得することができます。OSが不明なので、とりあえずWindowsでの例です。 perl側 $result = `test.exe`; printf ("RESULT=<%s>\n",$result); C側( 実行モジュールはtest.exe) #include <stdio.h> void main(void) { printf ("This is a pen"); } perlのスクリプトを実行すると RESULT=<This is a pen> 得られます。

その他の回答 (3)

  • estea
  • ベストアンサー率44% (39/87)
回答No.4

open でパイプ system( 'command' ) `command` のどれかになると思うんだが。

  • BLUEPIXY
  • ベストアンサー率50% (3003/5914)
回答No.2

Cの方のプログラムは、どんなインターフェースになっているのですか? DLLとかコマンドの引数で渡すとか? 私も、質問文の処理程度ならPerlでできると思います。 そのCのプログラムを補足でアップすることはできますか?

回答No.1

Cのプログラムの呼び出しは、system()を使えばよいとは思いますが、それよりは、 perlで全部処理してしまう方がいいのでは?と思えます。

関連するQ&A

  • PerlからCへの値の受け渡し方

    こんにちわ。 今、CGIについて勉強している初心者です。 まだまだ勉強中の身ですが、一つ質問があります。 PerlからCへ値を引き渡すことはできるのでしょうか? 例えば、WEB上で値を取得する部分はPerlで作成し、受け取った値をCプログラムで処理して、その結果をまたPerlに返してやるといったことを考えています。 もし出来るなら、詳しく教えてもらえないでしょうか? ここに書ききれないというのであれば、簡単にでもいいので教えて下さい。 よろしくお願いします。

    • 締切済み
    • CGI
  • (visual)C++から(active)perlを呼ぶ

    Vista sp1 64 bit, visual C++ 2008 express, active perl 5.1を使用しています。 しばらくの間active perlを使ってテキスト処理のスクリプトを書き溜めてきました。 最近になってC++ を使うようになり、今後はC++中心にプログラミングをしていこうと思っています。 ただ、これまで書き溜めたperlスクリプトをどうにかしてC++で再利用できないかと思っています。またテキスト処理に関してはC++よりやはりperl が優れていると感じ、C++ のプログラムを主体として必要に応じてその中にperlのスクリプトを組み込みたいと考えています。 たとえばテキストファイルを読み込みや最終的な出力するのはメインのC++で書き、各行のテキスト処理はC++からperlのサブルーチンにデータを渡して処理するというような形です。 perlのドキュメントを見る限りではperlembedがこの目的に適しているようでした。 http://perldoc.jp/docs/perl/5.10.0/perlembed.pod サンプルコードなども書いてあるのですが、どうやらunix環境、gcc(?)の例のみのようです。 windows環境でvisual C++ とactive perlを用いて C++からperlを呼び出すようなプログラムを書くにはvisual c++の設定をどのようにしたらよいでしょうか?

  • C++のプログラムをPerlに変換したいのですが

    私はプログラム初心者で、知人に貰ったC++のプログラムを Perlに変換して使用したいのですが 何か変換ソフトのようなものはありませんか 情報お待ちしています

  • Perlについて

    今Perlのプログラムを組まされているのですが、 IPアドレスなどの数字のような文字列を 数字が小さい順に並べようとしても うまく並べられません。 どうしたらうまく並べれるのですか? たとえば 134.342.444.321 134.342.444.332 134.421.453.222 を 134.421.453.222 134.342.444.321 134.342.444.332 に並べ替えたいのです。 ちなみにデータは大量にあります。 どうかよろしくお願いします。

  • perlでc言語の実行処理を行いたい

    perlでcのプログラム処理を行いたいのですが可能でしょうか。 内容としては、 複数のファイルをcのプログラムによって別のファイルにアウトプットする形にしたいと思っております。 よろしくお願いします。

    • ベストアンサー
    • Perl
  • C#でのPerlプログラムの実行

    C#初心者です。環境はVisualC#を使っています。 C#でGUIを作成中なのですが、GUIのあるボタンを押すと、 Perlのプログラムが実行されて、動くようにしたいのです。 どのようにすればよいでしょうか?

  • Perlでファイルの名前を変更するには?

    Perlであるフォルダの中にある、いくつかのファイルの名前を 自動的に変更するにはどのようなプログラムにしたらよろしいのでしょうか? 具体的には、ファイルの名前が二桁の数字(例えば13)で表されているとします。 その二桁の数字を四桁(例えば0013)にしたりなどです。 プログラミング初心者でわからないことが多く困っています。 なるべく詳しくお願いします。 できれば、近いプログラムを作って頂ければ・・・ 急ぎでお願い致します。

  • Perlのアドレスについて

    はじめまして、 Webサーバー初心者です。 CGIを動かすモジュールを入れて実際自分のサーバーでCGIを動かそうと思ったんですが、CGIのプログラムの頭にある「#!user/local/bin/user」(←例です)などのアドレスの指定がよくわかりません。よく、レンタルサーバーとかであると「うちのPerlのアドレスは#!user/local/bin/user」ですなどと表示されていたりしますが、今回は自分がサーバーなのでほかのユーザーがPerlを使うときにアドレスを指定してあげないといけません。どうしたら自分のサーバーのPerlの場所の指定ができるのでしょうか?(ようは,私の場合どのようなアドレスになるのかが知りたいわけです) ちなみにPerlのインストール先は「C:\Perl」でソフトは「Active Perl」を使用しております。サーバーのOSはWindowsXP(Pro)です。 よろしくお願いします。

  • Perlでの文字列処理について

    プログラム初心者です。 Perlで下記のような文字列処理のプログラムの書き方がわからず、質問させて頂きました。 【内容】 FILE_A.txtが「!」マークで区切られていて、「!」マークの下行の文字列をIPアドレスの右横に移動したものをFILE_B.txtに出力するという処理です。 「!」マークの下行の文字列の「name」は共通です。 -------------------------------------------- 【FILE_A.txt】 ! name abcdeLV 123.123.123.123 123.123.123.124 123.123.123.125 ! name fghijLV 10.10.10.11 10.10.10.12 10.10.10.13 10.10.10.15 10.10.10.16 ! -------------------------------------------- ↓ -------------------------------------------- 【FILE_B.txt】 123.123.123.123 abcdeLV 123.123.123.124 abcdeLV 123.123.123.125 abcdeLV 10.10.10.11 fghijLV 10.10.10.12 fghijLV 10.10.10.13 10.10.10.15 fghijLV 10.10.10.16 fghijLV -------------------------------------------- 上記のようなPerlでの処理を具体的に教えて頂ければうれしいです。 本サイトのようなものを利用するのが初めてですので、不手際があるかもしれませんが なにとぞよろしくお願いいたします。

    • ベストアンサー
    • Perl
  • C#でプログラミングしてるのですが・・・

    C#です。 配列にある数字を入れています。 例えば、 sampleという配列に、 sample[0]=3 sample[1]=5 sample[2]=7 sample[3]=2 sample[4]=10 sample[5]=12 という感じで、ランダムに数字を入れています。これらの数字の中で、一番小さな数字を割り出すプログラムはあるんでしょうか?? まだ、初心者でよく分からないのですが、もしあるのでしたら、どんなプログラムか教えて欲しいです。

専門家に質問してみよう