Linuxのプログラムとライブラリ間でのデータのやり取りについて知りたい

このQ&Aのポイント
  • Linuxでプログラムとライブラリ間でのデータの受け渡し方法について教えてください。
  • Windows上で作成したDLLルーチンをLinuxに移植する際、データの受け渡し方法が分かりません。
  • PHPからデータを受け取り、加工して結果を返すライブラリを作成する方法について教えてください。
回答を見る
  • ベストアンサー

Linuxのプログラムとライブラリ間でのデータのやり取り

Windows の Borland C で、テキストデータを受け取り、そのテキストデータを加工し、結果を返すというDLLルーチンを作成しました。データの受け渡しは、先頭アドレスを引数で渡すという形になっています。 Windows 上で稼動するようになったこのルーチンをLinuxに移植しなければならなくなったのですが、LinuxではCなどのプログラミング経験がないため、データの受け渡しをどのようにすれば良いのかわかりません。(普段はPHPやPerlを使うことが多いです) データ処理の部分はそのまま持っていけば使えそうなので、データの受け渡しの部分をどうするかが大問題です。 また、WebサーバでPHPスクリプトからも呼び出したいということなので、単純にライブラリ化してリンクするという形ではダメみたいです。またWebから呼ばれるということなので、その都度起動させていてはメモリを食いすぎるため、ルーチンをデーモンにして常駐させておき、必要に応じて呼び出して処理させるという形にするのが良いみたいです。 サーチエンジン等で調べてみたのですが、共有メモリを使うのが良いらしい、ということしかわかりませんでした。 とりあえず下記のような要件を考えてみましたが、どのように実現すればよいのかわかりません。 ・デーモンとして常駐する ・PHPからデータをもらって返すやり方(共有メモリ?) ・複数のリクエストが来ても対応できる 何かサンプルとか資料のようなものをご存知でしたら教えていただけないでしょうか。

  • haru44
  • お礼率68% (153/223)

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

  • ベストアンサー
  • t_nojiri
  • ベストアンサー率28% (595/2071)
回答No.1

なんか、あんまりどういう用件か判りませんが、 >・複数のリクエストが来ても対応できる っていうのは、複数のプロセスから同時アクセスされるって事ですか? そうなら、セマフォやデータベース使うのが宜しいかと思いますが、UNIX系で気軽にデータやり取りするならファイル作ってプログラム間やり取りするのが一般的な気がします。

haru44
質問者

お礼

どうもありがとうございました。

関連するQ&A

  • Linuxでパケットのデータ部分を合成するプログラムを教えてください。

    LinuxでC言語を使用しているのですが、パケットのデータ部分を合成するプログラムのを教えてください。 具体的な例として、 端末A,B,Cがあり、AはBを中継して、CにUDPパケットを2個送信します。 中継端末のBは2個のUDPパケットをバッファリングした後、データ部分のみを1個のパケットにまとめてCに送信します。(ヘッダ部分はAが送信したときと同じにしたい) Cは2個分のデータが入ったUDPパケットを1個受信する。 この例の端末Bでのプログラムを書くとするとどのようにすればいいのでしょうか?? よろしくお願いしますm(_ _)m

  • Linuxを勉強しようと思います。プログラムってどのような種類が?

    タイトルが長くなって申し訳ありません。 これからlinuxを勉強しようと思うのですが 本やネットで色々調べてこれにしようという種類や目的はほぼ決まりました webサーバはとりあえず立ち上げてみようと思っています ただ、そこで一つ疑問が浮かびました。 2冊ほど本を買ったのですが、載っていなかったことです まず 1)これからはGUIでインストールすればいいのかどうか 仕事で使えるようになるには、CUIでインストールした方がいいとよく聞くので この辺がどうなっているのが知りたいです。 2)プログラムをするなら絶対にlinuxがいいと聞きます Cとかなのですが…。 ただこれも本を見てもさっぱり載っていませんし 何故linuxがプログラムに向いているのかも分かりません。 そもそもwindowsのソフトを作るならwindowsじゃないとまずいんじゃないの? と思ったりもしています。 Perlもlinuxを入れるならlinuxでやるほうがいいとも言われたのですが なぜ?という疑問を出すと答えが返ってこないまま生殺しなのです^^; 私としてはとりあえず先にwebサーバをやろうとは思いますが 現状で時間を区切りCの勉強などもやろうと思っています ですので、もしそういうプログラムがlinuxでやる方がいいのであれば windowsではやらないようにしようと思っているのですが 実際の所どうなのでしょうか? 私はlinuxのプログラムというのは、システムの根幹の部分等々の事だと思っています これは間違えているのでしょうか? 間違えているのならlinuxで専らやるプログラムの種類についても教えてください!

  • Linux上で動くシステムとしてC系とJavaは

    C系を学習しようかJavaを学習しようか迷っております。 用途としては、自社の全支店、他企業(承諾済みとします)のWebコンテンツ、サーバ上のデータ他、いわゆるデータを自動で吸収(読み取り、保存)し、それを専用のLinux機器にてデータの加工、再処理などを数学なども利用して実行したいと考えております。 似たようなものとして(?)良く分かりませんがGoogleの検索ロボットのようなものだと思います。 自分はPHP、JavaScript等のWeb言語などは習得しているのですが、C系やJavaは学習しておりません。 ただ、オブジェクト指向という点は少々慣れていると思います。 具体例がかなり説明不足だと思いますが、このようにパソコン内部でシステムを動かす際にはどちらの言語がいいのでしょうか? 色々とWebで調べてみたのですが難しくて分かりませんでした。 各言語で出来ているソフトウェアを考えても、Apache、Linux、Eclipseとかしか分からずシステムとしてはC系の方がいいのかなと単純に思っております。 C系とJavaの違いとして、ライブラリ、フレームワークがあると思うのですが、C系は基本的に殆ど自分でプログラミングを作成する、JavaはJSPとかライブラリ、フレームワークが多いようなので開発は楽そうな感じはするのですが。 それ以外のお互いの利点が良く分かりません。 Javaに関しては、PHP等よりも型指定などにより複雑だけどセキュアな銀行などで使われるWebアプリ、携帯アプリとかぐらいしか思いつかないレベルです。 すみませんが以上の点でよろしくお願いします。

  • phpで外部プログラムを動かす

    初心者です。基礎的なことですが教えてください。 C言語で書いたプログラムをWebサービスで使いたいと思っています。 C単体でのプログラムをサーバ側で動かしますが、Webと連動させ、Web上のフォーマット から入力した情報をphpで経由し、サーバ側のCプログラムで処理する為に、データを渡し 起動し、結果をまたWeb上に返します。 その場合の phpでデータをCに渡し、プログラムを起動して、結果をCから貰い、Web上に 返すためのやり方を教えて下さい。どんなコーディング、関数になるのでしょうか。 またWebサーバの場合はCのコンパイラは通常どんなコンパイラを使用すれば良いの でしょうか。どんなレンタルサーバ会社でも問題ないのでしょうか。 初心者なので、よろしくお願いします

    • 締切済み
    • PHP
  • メモリをたくさん使うテストプログラム

    Linuxで、メモリをたくさん使うようなテストプログラムを作りたいのです。 メモリといっても、プログラムコードの入っているテキスト領域、データの入っているデータ領域、ヒープ領域などがあると思いますが、 これらのいずれかのみをたくさん使うようなプログラムを作りたいのです。 例えば、サイズの大きなプログラムであれば、テキスト領域が大きくなったり、 大容量の文字列を扱ったりすると、データ領域が大きくなったりするんでしょうか? 関数とメモリ使用量の関係があまり分かっていません。 どうか教えてください。

  • Linuxを始めてみようと思っております。

    ご覧頂きましてありがとうございます。 このたび、Linuxを始めてみようと思っているものです。 3年前、WindowsのPCにLinuxをインストールしたら、 セットアップの仕方がよくわからず、PCごと駄目にしてしまいました。 今回、またどうしてもLinuxを学びたく、質問させていただきました。 そこで、教えていただきたいことがございます。 (i)Linuxをインターネット回線を利用せずに、付録のCDROMで  インストールすることは可能でしょうか? (ii)仕事用(C,C++,java,PHP,Perlを組むため)に使いたいのですが、  上記のLinuxをインストールしたら既に組める状態にあるのでしょうか? (iii)オススメの本、またはサイトなどありましたら、お願いいたします。  Linuxに関するご意見ご感想などでもかまいません。 最後に、私についての自己紹介ですが、20代前半、学校卒業後、 就職が決まらず、自宅でプログラミングの勉強をしています。 スキルは、基本情報処理取得、PC歴約5年(win)、主な言語はCです。 どうぞよろしくお願いいたします。

  • FreeBSDとLinuxについて

    質問がございます。 アドバイス頂けないでしょうか。 PHP MYSQL でWebサイトを構築予定なのですが、 いつもOSはLinux系なのですが、今回OSがFreeBSD という形になりました。 そこで、開発環境をLinuxで行った後、本サイト(FreeBSD)に 反映と考えていたのですが、こういった場合何か問題が発生する ことはあるのでしょうか。 あまり詳しくなく調べてはいるのですが、アドバイス頂ければと思い質問しました。

  • フォームからのデータの受け渡しが上手く行かない

    市販のPHPとMySQLに関するテキスト本を購入して、テキスト通りに作業しているのですが、上手く動作しません。 環境はWindows XP,Apache2,MySQL5,PHP5.2です。 それぞれのソフトのインストールはでき、PHPからMySQLへのレコードの追加までは確認ができています。 付録ファイルをセットアップしたのですが、フォームからプログラムへデータを渡す(検索など)部分でデータの受け渡しができません。 Apacheのログを見るとGETで引数を渡しているようなのですが、キーワードが空な時に表示するワーニングが出てしまいます。 自分でプログラムしたわけではないので動作確認は取れていると思いますし、環境設定なのかと思うのですが、気付くことがあれば教えてください。

    • 締切済み
    • PHP
  • Linux Red HatをノートPCに入れたいんですが

    COMPAQプレサリオノートPCにREDHATを入れたいと思ってます。OSはWIN98SEです。 ちなみにCドライブの空き容量は3.38G Dドライブは空き容量1.1Gです メモリは59.0MBです 実際このメモリとDドライブの空き容量でインストールは可能でしょうか? あと、WINDOWSとLINUXの共有に関するわかりやすい本やWEBなど教えていただければと思います。

  • apacheに常駐するプログラムの作成について

    サーバーでデータを収集するプログラムが作成しようと調査しています。 24時間実行させたいので最終的にはレンタルサーバーを使用しようと思います。 cronで定期的に実行させることも考えましたが、apacheならずっと起動していますので、常駐させられないかと調べています。 以前、仕事でweblogicを使用し、javaで常駐プログラムを実行していたのを見たことがあるので、apacheでも同様なことができないかと調査していますが、それらしい文献を見つけられず困っています。 apache上で動作する常駐プログラムの作成方法を教えていただけないでしょうか。 サーバーの環境は以下を想定しています。 OS:linux系 webサーバー:apache 使用可能言語:perl、php、python

専門家に質問してみよう