2011-06-02 5 views
0

ファイルがファイル拡張子なしでコンパイルされたオブジェクト(.o(ライブラリ))か実行可能ファイルかどうかを検出するにはどうすればよいですか?拡張子を付けずに.o/.a /コンパイル済みオブジェクト/実行可能ファイルのc/C++を検出する方法は?

これを実行して、どのような.c/.hファイルがバイナリの作成に使用されたかを確認するために、whatコマンドを発行することができます。

おそらくファイルかを探すために他のいくつかのパターンの先頭にヘッダのいくつかの種類があるだろう(?)

は少しすでにここと他の場所で周りを見ていたが、答えはMIME程度になる傾向がありこのようなファイルの種類とWeb開発/取り扱い:

+1

など、その後、特定のファイル形式を識別する「マジックナンバー」を探し、「これは特別なデバイスではなく、通常のファイルである」のようなものを見て'file'コマンドは何か助けになりますか?) – marnir

+0

+1そうです!例:ELF 32ビットLSB実行可能ファイル、インテル80386、バージョン1(SYSV)、GNU/Linux 2.2.5、動的リンク(共有ライブラリを使用)、GNU/Linux 2.2.5用、ストリップなし - 正規表現を使用できますこのテキストデータを解析して私にとってはうまくいくはずです。では、なぜコメントではなくあなたの答えとしてこれを提出しなかったのですか?恥ずかしがらないでください!これを回答として提出すれば、私はおそらくそれを+1して受け入れますが、私は他の人にチャンスを与えますが、あなたの提案は私にはかなり良いようです。 – therobyouknow

+1

それは少しの推測だったので:P私はそれを提出するでしょう:) – marnir

答えて

1

は、UNIX/Linuxのにしている場合は、fileコマンドは、ファイルの拡張子に依存せずにファイルのファイルタイプを決定するのに有用です。

は、UNIX/Linuxの中でならそれは、(

+0

+1それは私が必要なことを行う必要があります - ありがとう:例えば: ELF GNU/Linux 2.2.5、ダイナミックリンク(共有ライブラリを使用)、GNU/Linux 2.2.5用、インテル80386、バージョン1(SYSV)、実行不可能な32ビットLSB実行ファイル - 正規表現を使用して解析できますこのテキストデータは私にとってはうまくいくはずです。 – therobyouknow

関連する問題