私はいじくり回して、C で小さな IRC フレームワークを書いていましたが、それをいくつかのコア機能で拡張しようとしています。
これまで、私が IRC 関連の何かを書き (そして、今では約 6 つの異なる言語で多くのことを書きました... 私は燃えています!)、実際にプラグイン アーキテクチャの実装に進むときはいつでも、それはインタプリタ言語の内部にありました。たとえば、Ruby でスクリプト ファイル全体を妨害するeval
(悪い!) などです。
今、私はCで何かを悪用したい!
基本的に私ができることは3つあります
- プログラム内で単純なスクリプト言語を定義する
- 既存のものを使用し、インタープリターを埋め込む
- libdl を使用して、実行時に *.so モジュールをロードします
私は 3 番目のオプションが好きで、できれば他の 2 つのオプションは避けたいと思っています。私はある種のマゾヒストかもしれませんが、楽しくて学習にも役立つと思います。
論理的に考えると、明らかな「痛みの連鎖」は (最低から最高へ) 2 -> 1 -> 3 になります。これは単純な理由で、libdl は私の目の前で頻繁に爆発する (そして爆発する) 生のコードを扱っているためです。 .
この質問は、stackoverflow の仲間のユーザーであるあなたに向けられています。libdl はこのタスクを実行できると思いますか、それとも現実的な考えでさえありますか?