C++
為什麼 linux 將 C# .cs 文件辨識為 C++ 源文件?
我在ac#源文件上使用了file命令,linux以為是c++文件。這是什麼原因?
查看該
file
命令的手冊頁:$ 人文件
…
file 測試每個參數以嘗試對其進行分類。共有三組測試,按此順序執行:文件系統測試、魔術測試和語言測試。第一個成功的測試會導致列印文件類型。
這是執行將這個文件歸類為 C++ 文件的第三個測試(語言測試) 。
file
一旦文件確定了文本類型文件中使用的字元集,它將嘗試確定文件是用什麼語言編寫的。語言測試查找可以出現在文件前幾個塊中的任何位置的特定字元串(參見 #include )。例如,關鍵字 .br 表示該文件很可能是 troff(1) 輸入文件,就像關鍵字 struct 表示 C 程序一樣。這些測試不如前兩組可靠,因此最後執行。語言測試常式還測試一些雜項(例如 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