|
|
|
чтение из файла
|
|||
|---|---|---|---|
|
#18+
кто-нибудь может рассказать мне как происходит чтение из файла на жёстком диске? точно, понятно, последовательно... заранее благодарен ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.04.2005, 07:42 |
|
||
|
чтение из файла
|
|||
|---|---|---|---|
|
#18+
XEDкто-нибудь может рассказать мне как происходит чтение из файла на жёстком диске? точно, понятно, последовательно... заранее благодарен Ну, если говорить так, чтобы было понятно, то происходит примерно следующее: 1. По fopen(....) (Или какой другой функции) открывается файл и ему присваивается некоторый идентификатор (handle), который далее используется вместо имени файла во всех функциях... 2. При открытии указатель автоматически позиционируется на начало файла 3. При операции чтения происходит чтение очередного символа и указатель на текущую позицию сдвигается к концу файла на одну позицию... Все это происходит в цикле, пока не будет считано заданное число символов, либо не будет выполнено определенное условие (достигнут символ перевода строки, или символ конца файла, или др...). 4. по окончанию работы необходимо разрушить соответствие указателя и реального файла. Это делает функция fclose(....). Если проводить аналогии, то чтение файла подобно прослушиванию, например, кассеты (от начала кассеты до конца, последовательно); указатель текущей позиции при этом будет магнитная головка... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.04.2005, 08:08 |
|
||
|
чтение из файла
|
|||
|---|---|---|---|
|
#18+
замечательно... но только это немного не то, что я имел ввиду - это всё вещи достаточно известные, мне больше интересен сий процесс на физическом уровне, скажем, я так сильно подозреваю, что между мной и файлом встаёт такая вещь, как БУФЕР. Встает, упирает руки в бока и... так вот как происходит взаимодействие меня и буфера, файла и буфера. Скажем, его размер постоянный или от чего-то зависит, ... э-э-э... что если я запрошу меньше, чем он есть или, не дай бог, больше... ну и другие может быть какие моменты... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.04.2005, 15:51 |
|
||
|
чтение из файла
|
|||
|---|---|---|---|
|
#18+
замечательно... но только это немного не то, что я имел ввиду - это всё вещи достаточно известные, мне больше интересен сий процесс на физическом уровне, скажем, я так сильно подозреваю, что между мной и файлом встаёт такая вещь, как БУФЕР. Встает, упирает руки в бока и... так вот как происходит взаимодействие меня и буфера, файла и буфера. Скажем, его размер постоянный или от чего-то зависит, ... э-э-э... что если я запрошу меньше, чем он есть или, не дай бог, больше... ну и другие может быть какие моменты... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.04.2005, 15:52 |
|
||
|
чтение из файла
|
|||
|---|---|---|---|
|
#18+
Лучше уж тебе тогда исходники почитать, а ты бы как хотел? чтобы считывали каждый символ отдельно? А вторых зависит от функции и/или класса, потока который юзаешь. А в третьих, ты же С используешь можно написать свой класс для работы с файлами. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.04.2005, 16:30 |
|
||
|
чтение из файла
|
|||
|---|---|---|---|
|
#18+
Вопрос вообще-то неознозначный. Помимо того, что сеществует буфер, который создается CRT, существуют также буфера, создаваемы операционной системой, контроллером диска итд. Структура буфера ОС зависит от того, что за ОС, что за файловая система. ________________________________________________________ Глюк - это высокоорганизованная система не поддающихся определению частиц ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.04.2005, 16:54 |
|
||
|
чтение из файла
|
|||
|---|---|---|---|
|
#18+
[quot Lelikk]Вопрос вообще-то неознозначный. Помимо того, что сеществует буфер, который создается CRT, существуют также буфера, создаваемы операционной системой, контроллером диска итд. Структура буфера ОС зависит от того, что за ОС, что за файловая система. [quot] Оч. зачемечательно, ну а как же мне тогда разузнать что-нить про эту байду? Да так, чтобы информация была подостовернее? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.04.2005, 02:23 |
|
||
|
чтение из файла
|
|||
|---|---|---|---|
|
#18+
XED[quot Lelikk]Вопрос вообще-то неознозначный. Помимо того, что сеществует буфер, который создается CRT, существуют также буфера, создаваемы операционной системой, контроллером диска итд. Структура буфера ОС зависит от того, что за ОС, что за файловая система. [quot] Оч. зачемечательно, ну а как же мне тогда разузнать что-нить про эту байду? Да так, чтобы информация была подостовернее? Почитать исходники. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.04.2005, 06:52 |
|
||
|
чтение из файла
|
|||
|---|---|---|---|
|
#18+
CruelGenius XED[quot Lelikk]Вопрос вообще-то неознозначный. Помимо того, что сеществует буфер, который создается CRT, существуют также буфера, создаваемы операционной системой, контроллером диска итд. Структура буфера ОС зависит от того, что за ОС, что за файловая система. [quot] Оч. зачемечательно, ну а как же мне тогда разузнать что-нить про эту байду? Да так, чтобы информация была подостовернее? Почитать исходники. Винды. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.04.2005, 12:40 |
|
||
|
чтение из файла
|
|||
|---|---|---|---|
|
#18+
Lelikk CruelGenius XED[quot Lelikk]Вопрос вообще-то неознозначный. Помимо того, что сеществует буфер, который создается CRT, существуют также буфера, создаваемы операционной системой, контроллером диска итд. Структура буфера ОС зависит от того, что за ОС, что за файловая система. [quot] Оч. зачемечательно, ну а как же мне тогда разузнать что-нить про эту байду? Да так, чтобы информация была подостовернее? Почитать исходники. Винды. А что - в ассемблерный код они переводятся хорошо . А дальше - дело техники (и времени, и знания ассемблера) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.04.2005, 12:51 |
|
||
|
чтение из файла
|
|||
|---|---|---|---|
|
#18+
Спасибо, ребята! Вы все такие милые и добрые... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.04.2005, 15:41 |
|
||
|
чтение из файла
|
|||
|---|---|---|---|
|
#18+
Спасибо, ребята! Вы все такие милые и добрые... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.04.2005, 15:49 |
|
||
|
чтение из файла
|
|||
|---|---|---|---|
|
#18+
почему он повторяется? Уже не первый раз... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.04.2005, 17:23 |
|
||
|
чтение из файла
|
|||
|---|---|---|---|
|
#18+
хочу "поднять" вопрос... PS Короче я не поленился поставить MS-DOS (великая вещЬ!) и проверить работу с файлами на низком уровне... Почему DOS? Потому что она как старая бл?*:! всем даёт... :) Ну вобщем как я и предполагал ОС (во всяком случае DOS) создаёт буфер размером 512 байт, в который порционно (по 512 байт) читает данные, независимо от того сколько было запрошено. Если меньше, то в буфер будет считано 512, а пользователю предоставится меньше, если больше, то в несколько этапов будет считано больше... Но опять же DOS так жестоко подсматривать позволяет... А Windows? У меня же в руках есть только HANDLE ("рукоятка" дословно). И я ничего не могу вытащить из системы. Может это просто я не могу? Ну дык подскажите как... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.05.2005, 16:17 |
|
||
|
чтение из файла
|
|||
|---|---|---|---|
|
#18+
Насколько я еще помню DOS и тамошнюю работу с файлами, Вы пишете о буфферизованном вводе/выводе, когда буфер автоматически выделяется при открытии файла. Но был еще небуфферизованный ввод/вывод. При этом к файлу можно было подключить собственный буфер произвольного размера. Не знаю, сохранилась ли эта возможность в Windows. Пошарьте в MSDN на слово CreateFileMapping и рядом с ним. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.05.2005, 16:29 |
|
||
|
чтение из файла
|
|||
|---|---|---|---|
|
#18+
MLeonНасколько я еще помню DOS и тамошнюю работу с файлами, Вы пишете о буфферизованном вводе/выводе, когда буфер автоматически выделяется при открытии файла. Но был еще небуфферизованный ввод/вывод. При этом к файлу можно было подключить собственный буфер произвольного размера. Не знаю, сохранилась ли эта возможность в Windows. Пошарьте в MSDN на слово CreateFileMapping и рядом с ним. Запретить буфферизацию файла можно указав при открытии через CreateFile флаг FILE_FLAG_NO_BUFFERING. Самому буффер можно сбрасывать вызывая FlushFileBuffer ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.05.2005, 17:02 |
|
||
|
|

start [/forum/search_topic.php?author=PSL2&author_mode=last_posts&do_search=1]: |
0ms |
get settings: |
7ms |
get forum list: |
14ms |
get settings: |
8ms |
get forum list: |
14ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
28ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
58ms |
get tp. blocked users: |
1ms |
| others: | 721ms |
| total: | 871ms |

| 0 / 0 |
