以下を使用して特定のファイル形式を確認すると、file
C ++ファイルがCファイルとして正しく表示されないことがわかりました。
$ file User.*
User.cpp: C source, ASCII text
User.h: C++ source, ASCII text
User.o: ELF 64-bit LSB relocatable, x86-64, version 1 (SYSV), not stripped
ヘッダファイルは正しく認識されますが、cppファイルが認識されないのはなぜですか?
答え1
コマンドのマニュアルページでfile
、
file
このコマンドは、実際にファイル形式を決定するために3つのテストを実行します。
最初のテスト
ファイルシステムテストは、stat(2) システムコールの戻り結果チェックに基づいています。
2回目のテスト
マジックナンバーテストは、特定の固定形式のデータを含むファイルを確認するために使用されます。
3回目のテスト
言語テストは、ファイルの最初の数ブロック内のどこにでも表示できる特定の文字列を見つけます(name.hを参照)。たとえば、structキーワードがCプログラムを表すように、.brキーワードは、ファイルがtroff(1)入力ファイルである可能性が最も高いことを示します。
コマンドの出力はfile
通常、成功したテスト結果に基づいています。
それでは、C ++プログラムがこのように始まり、3回目のテストが成功したとしましょう。
#include <iostream.h>
bla
bla
3番目のテストでは、キーワードは#include
そのタイプを具体的に指定します。氏プログラムがありますが、消費者保護計画プログラムを持っています。今確認してみると、
$ file example.cpp
example.cpp: ASCII C program text
オブジェクト指向の概念はC ++に固有のものです。特定のファイルを作成しましょうC++。
C++ プログラムを起動します。
Class something
{
}
bla
bla
今発行するとき
$ file example.cpp
出力は、
example.cpp: ASCII C++ program text