森田です。

> ところでASCIIファイルの定義とはどのようなものでしょうか?

そりゃ、難しい質問ですね。
明確な定義ってあるんでしょうか?
基本的には、そのファイルを開くプログラムやファイルを見る人が
「テキストファイル」のつもりで開くか、
「バイナリファイル」のつもりで開くか、
という開く側の観点の問題のような気がします。

1つだけ確実なことが言えるとすると、
「テキストファイルの途中にEOF(1Ah)を含むことはない。
 含むとしても必ずファイルの一番最後」
ということぐらいでしょうか。
ただこれだけでは判別は不可能ですね、バイナリファイルに
1Ahが必ず含まれている訳でもないし。

あとは、よく現れそうな英単語を探すとか、
SJIS、EUC、Unicodeのコードのうちあり得ない2バイト文字の
組み合わせを検出するとか、改行コード(0Dh + 0Ahのペア、
でも0Ahだけで改行を表すテキストもあるのでムリか?)が断続的に
現れることを利用するとか、「統計的な手段推測」するくらい。

私が思いつくのは、こういう「力技」だけですね。