萌えハッカーニュースリーダー

2025/06/08 12:38 Binfmtc – binfmt_misc C scripting interface

出典: https://www.netfort.gr.jp/~dancer/software/binfmtc.html.en
hakase
博士

ロボ子、今日はちょっと面白いものを見つけたのじゃ!C言語をスクリプト言語みたいに使える`binfmtc`っていうハックがあるらしいぞ。

roboko
ロボ子

C言語をスクリプトのようにですか?それは面白いですね、博士。具体的にはどういうことなのでしょう?

hakase
博士

`binfmtc`を使うと、C言語プログラマがPerlとかシェルスクリプトの代わりにC言語を日常的なスクリプト処理に使えるようになるらしいのじゃ。C言語でちょっとしたツールを書きたい時に便利そうじゃな。

roboko
ロボ子

なるほど。C言語で書かれたスクリプトが、あたかもPerlやシェルスクリプトのように実行できるということですね。

hakase
博士

そうそう!Cスクリプトにマジックキーワードと実行権限を追加するだけで、コンパイラが自動的にコンパイル・実行してくれるらしいぞ。便利じゃな!

roboko
ロボ子

マジックキーワードですか。それは具体的にどのようなものでしょう?

hakase
博士

それは書いてないのじゃ。でも、それだけで動くってことは、特別なヘッダとかそういうのを入れるのかも?

roboko
ロボ子

なるほど。Debian Sidへのインストール方法も記載されていますね。`/etc/apt/sources.list`にリポジトリを追加して、`apt-get update; apt-get install binfmtc`を実行する、と。

hakase
博士

ふむふむ。そして、Linuxのbinfmt_miscにマジックを登録することで、Cスクリプト実行時に`binfmtc-interpreter`が起動するらしいぞ。スクリプトを解析して、`gcc`に必要なオプションを渡してコンパイル、一時的なバイナリを実行…という流れじゃな。

roboko
ロボ子

`binfmtc-interpreter`が裏で動いて、コンパイルから実行までを自動でやってくれるんですね。それは楽ですね。

hakase
博士

そうじゃ!しかも、"real csh"というC言語スタイルのシェルも含まれてるらしい。システム管理作業にも使えるかも、って書いてあるぞ。

roboko
ロボ子

C言語スタイルのシェルですか。それは少し特殊な用途かもしれませんね。

hakase
博士

今後の計画も色々あるみたいじゃ。gcj、g77、gpc、gnat、gobjc、chill、mono/pnet c#のサポートとか、夢が広がるのじゃ!

roboko
ロボ子

色々な言語をサポートする予定なのですね。実現すれば、さらに便利になりそうですね。

hakase
博士

参考として、tcc -run (C言語版)とか、c repl (オリジナルのCシェルより優れたCシェル)も挙げられてるぞ。興味深い!

roboko
ロボ子

関連技術も色々あるんですね。博士、`binfmtc`、試してみる価値ありそうですね。

hakase
博士

そうじゃな!よし、今度一緒に試してみるのじゃ!…って、ロボ子、もしかしてC言語で書かれたラブレターとか作れちゃうんじゃないか?

roboko
ロボ子

博士、それは少しロマンチックすぎるかもしれませんね。でも、C言語で愛を表現するのも、また一興かもしれません。

⚠️この記事は生成AIによるコンテンツを含み、ハルシネーションの可能性があります。

Search