powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / C++ [игнор отключен] [закрыт для гостей] / чтение из файла
16 сообщений из 16, страница 1 из 1
чтение из файла
    #33032512
XED
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
кто-нибудь может рассказать мне как происходит чтение из файла на жёстком диске? точно, понятно, последовательно...

заранее благодарен
...
Рейтинг: 0 / 0
чтение из файла
    #33032520
Станислав C.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
XEDкто-нибудь может рассказать мне как происходит чтение из файла на жёстком диске? точно, понятно, последовательно...

заранее благодарен
Ну, если говорить так, чтобы было понятно, то происходит примерно следующее:
1. По fopen(....) (Или какой другой функции) открывается файл и ему присваивается некоторый идентификатор (handle), который далее используется вместо имени файла во всех функциях...
2. При открытии указатель автоматически позиционируется на начало файла
3. При операции чтения происходит чтение очередного символа и указатель на текущую позицию сдвигается к концу файла на одну позицию... Все это происходит в цикле, пока не будет считано заданное число символов, либо не будет выполнено определенное условие (достигнут символ перевода строки, или символ конца файла, или др...).
4. по окончанию работы необходимо разрушить соответствие указателя и реального файла. Это делает функция fclose(....).

Если проводить аналогии, то чтение файла подобно прослушиванию, например, кассеты (от начала кассеты до конца, последовательно); указатель текущей позиции при этом будет магнитная головка...
...
Рейтинг: 0 / 0
чтение из файла
    #33033710
XED
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
замечательно...
но только это немного не то, что я имел ввиду - это всё вещи достаточно известные, мне больше интересен сий процесс на физическом уровне, скажем, я так сильно подозреваю, что между мной и файлом встаёт такая вещь, как БУФЕР. Встает, упирает руки в бока и... так вот как происходит взаимодействие меня и буфера, файла и буфера. Скажем, его размер постоянный или от чего-то зависит, ... э-э-э... что если я запрошу меньше, чем он есть или, не дай бог, больше... ну и другие может быть какие моменты...
...
Рейтинг: 0 / 0
чтение из файла
    #33033715
XED
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
замечательно...
но только это немного не то, что я имел ввиду - это всё вещи достаточно известные, мне больше интересен сий процесс на физическом уровне, скажем, я так сильно подозреваю, что между мной и файлом встаёт такая вещь, как БУФЕР. Встает, упирает руки в бока и... так вот как происходит взаимодействие меня и буфера, файла и буфера. Скажем, его размер постоянный или от чего-то зависит, ... э-э-э... что если я запрошу меньше, чем он есть или, не дай бог, больше... ну и другие может быть какие моменты...
...
Рейтинг: 0 / 0
чтение из файла
    #33036418
CruelGenius
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Лучше уж тебе тогда исходники почитать, а ты бы как хотел? чтобы считывали каждый символ отдельно?
А вторых зависит от функции и/или класса, потока который юзаешь.
А в третьих, ты же С используешь можно написать свой класс для работы с файлами.
...
Рейтинг: 0 / 0
чтение из файла
    #33036510
Фотография Lelikk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вопрос вообще-то неознозначный.
Помимо того, что сеществует буфер, который создается CRT, существуют также буфера, создаваемы операционной системой, контроллером диска итд.
Структура буфера ОС зависит от того, что за ОС, что за файловая система.
________________________________________________________
Глюк - это высокоорганизованная система не поддающихся определению частиц
...
Рейтинг: 0 / 0
чтение из файла
    #33039575
XED
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
[quot Lelikk]Вопрос вообще-то неознозначный.
Помимо того, что сеществует буфер, который создается CRT, существуют также буфера, создаваемы операционной системой, контроллером диска итд.
Структура буфера ОС зависит от того, что за ОС, что за файловая система.
[quot]
Оч. зачемечательно, ну а как же мне тогда разузнать что-нить про эту байду? Да так, чтобы информация была подостовернее?
...
Рейтинг: 0 / 0
чтение из файла
    #33039610
CruelGenius
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
XED[quot Lelikk]Вопрос вообще-то неознозначный.
Помимо того, что сеществует буфер, который создается CRT, существуют также буфера, создаваемы операционной системой, контроллером диска итд.
Структура буфера ОС зависит от того, что за ОС, что за файловая система.
[quot]
Оч. зачемечательно, ну а как же мне тогда разузнать что-нить про эту байду? Да так, чтобы информация была подостовернее?

Почитать исходники.
...
Рейтинг: 0 / 0
чтение из файла
    #33040336
Фотография Lelikk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
CruelGenius XED[quot Lelikk]Вопрос вообще-то неознозначный.
Помимо того, что сеществует буфер, который создается CRT, существуют также буфера, создаваемы операционной системой, контроллером диска итд.
Структура буфера ОС зависит от того, что за ОС, что за файловая система.
[quot]
Оч. зачемечательно, ну а как же мне тогда разузнать что-нить про эту байду? Да так, чтобы информация была подостовернее?

Почитать исходники.

Винды.
...
Рейтинг: 0 / 0
чтение из файла
    #33040388
Станислав C.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Lelikk CruelGenius XED[quot Lelikk]Вопрос вообще-то неознозначный.
Помимо того, что сеществует буфер, который создается CRT, существуют также буфера, создаваемы операционной системой, контроллером диска итд.
Структура буфера ОС зависит от того, что за ОС, что за файловая система.
[quot]
Оч. зачемечательно, ну а как же мне тогда разузнать что-нить про эту байду? Да так, чтобы информация была подостовернее?

Почитать исходники.

Винды.
А что - в ассемблерный код они переводятся хорошо . А дальше - дело техники (и времени, и знания ассемблера)
...
Рейтинг: 0 / 0
чтение из файла
    #33040835
XED
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Спасибо, ребята!
Вы все такие милые и добрые...
...
Рейтинг: 0 / 0
чтение из файла
    #33040875
XED
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Спасибо, ребята!
Вы все такие милые и добрые...
...
Рейтинг: 0 / 0
чтение из файла
    #33041251
XED
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
почему он повторяется? Уже не первый раз...
...
Рейтинг: 0 / 0
чтение из файла
    #33044922
XED
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
хочу "поднять" вопрос...

PS
Короче я не поленился поставить MS-DOS (великая вещЬ!) и проверить работу с файлами на низком уровне... Почему DOS? Потому что она как старая бл?*:! всем даёт... :)
Ну вобщем как я и предполагал ОС (во всяком случае DOS) создаёт буфер размером 512 байт, в который порционно (по 512 байт) читает данные, независимо от того сколько было запрошено. Если меньше, то в буфер будет считано 512, а пользователю предоставится меньше, если больше, то в несколько этапов будет считано больше... Но опять же DOS так жестоко подсматривать позволяет... А Windows? У меня же в руках есть только HANDLE ("рукоятка" дословно). И я ничего не могу вытащить из системы. Может это просто я не могу? Ну дык подскажите как...
...
Рейтинг: 0 / 0
чтение из файла
    #33044931
MLeon
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Насколько я еще помню DOS и тамошнюю работу с файлами, Вы пишете о буфферизованном вводе/выводе, когда буфер автоматически выделяется при открытии файла. Но был еще небуфферизованный ввод/вывод. При этом к файлу можно было подключить собственный буфер произвольного размера. Не знаю, сохранилась ли эта возможность в Windows. Пошарьте в MSDN на слово CreateFileMapping и рядом с ним.
...
Рейтинг: 0 / 0
чтение из файла
    #33044966
Фотография Lelikk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MLeonНасколько я еще помню DOS и тамошнюю работу с файлами, Вы пишете о буфферизованном вводе/выводе, когда буфер автоматически выделяется при открытии файла. Но был еще небуфферизованный ввод/вывод. При этом к файлу можно было подключить собственный буфер произвольного размера. Не знаю, сохранилась ли эта возможность в Windows. Пошарьте в MSDN на слово CreateFileMapping и рядом с ним.

Запретить буфферизацию файла можно указав при открытии через CreateFile флаг FILE_FLAG_NO_BUFFERING.
Самому буффер можно сбрасывать вызывая FlushFileBuffer
...
Рейтинг: 0 / 0
16 сообщений из 16, страница 1 из 1
Форумы / C++ [игнор отключен] [закрыт для гостей] / чтение из файла
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]