参考までに、漏れは、Ruby で、
ファイルの最後の1バイトが、改行コードかどうか? という処理を作った

CR(復帰、0x0D)、LF(改行、0x0A)
Windows は、CRLF, \r\n
Linux は、LF, \n
古いMac は、CR, \r

last_line = nil

File.foreach( "abc.txt" ){ |line| last_line = line }

p last_line.end_with?( "\n" ) # 末尾が、\n か?