LinuxがC#.csファイルをC ++ソースファイルとして認識するのはなぜですか?

LinuxがC#.csファイルをC ++ソースファイルとして認識するのはなぜですか?

C#ソースファイルにfileコマンドを使用しましたが、LinuxはそれがC ++ファイルだと思います。その理由は何ですか?

ベストアンサー1

fileこのコマンドのマニュアルページを確認してください。

$人ファイル

...

ファイルは各パラメータをテストして分類を試みます。 3つのテストセットがあり、次の順序で実行されます。ファイルシステムのテスト魔法テスト言語テスト。最初のテストが成功すると、対応するファイル形式が印刷されます。

今回が3回目のテストです(言語テスト)はfileこのファイルをC ++ファイルに分類することを行います。

ファイルがテキストタイプファイルで使用される文字セットを決定すると、ファイルがどの言語で書かれているかを確認しようとします。言語テストは、ファイルの最初の数ブロック内のどこにでも表示できる特定の文字列を検索します(#includeを参照)。たとえば、structキーワードがCプログラムを表すように、.brキーワードは、ファイルがtroff(1)入力ファイルである可能性が最も高いことを示します。このテストは最初の2つのグループより信頼性が低いため、最後に実施されます。言語テストルーチンは、他の項目(例:tar(1)アーカイブ)もテストします。

C#ファイルはC ++ファイルと最もよく一致するため、file「推測」.csファイルはC ++ファイルです。

はい

$ more blah.cs
// A Hello World! program in C#.
using System;
namespace HelloWorld
{
    class Hello
    {
        static void Main()
        {
            Console.WriteLine("Hello World!");

            // Keep the console window open in debug mode.
            Console.WriteLine("Press any key to exit.");
            Console.ReadKey();
        }
    }
}

調査するfile

$ file blah.cs
blah.cs: ASCII C++ program text

おすすめ記事