Тройник для цикла не работает должным образом

Символ «конец файла», на который они ссылаются, вероятно, является единственным символом новой строки, встречающимся как последний символ в файле. Большинство обычных текстовых файлов в UNIX и UNIX -подобных системах заканчиваются таким образом, что вы можете использовать команду cat(или что-то подобное `для отображения содержимого файла и быть уверенным, что следующая командная строка будет на своей линии.

Некоторые плохо работающие приложения на самом деле не могут правильно анализировать файлы, если они не видят этот последний перевод строки. В этом отношении это немного похоже на метку Unicode byte -order -в закодированном тексте UTF -8, на самом деле он вообще не нужен (, он даже не должен быть там согласно большинству стандартов ), но некоторые приложения отказываются интерпретировать вещи как UTF -8 без него.


Однако с точки зрения самой ОС такого «персонажа» не существует. Файловая система хранит правильный размер файла, и при запросе на чтение файла ОС возвращает ровно столько данных, поэтому нет смысла даже иметь такую ​​​​концепцию, не говоря уже о символе для нее.

Некоторые люди путают управляющий код EOT (^D )с этой концепцией, так как он широко используется в UNIX -подобных системах для обозначения конца потока интерактивного ввода, но это всего лишь условность. из первоначального использования (для обозначения окончания передачи по некоторому каналу связи ). Обратите внимание, что это значительно отличается от систем DOS,где ^Z фактически сигнализировал конец файла как при интерактивном вводе, так и в реальных файлах. Управляющий код EOT на самом деле не отображается в потоке данных, который видит приложение, он интерпретируется терминалом, который сообщает приложению о завершении -из -условия файла, когда оно встречает ^D.

4
22.10.2021, 17:36
0 ответов

Теги

Похожие вопросы