[14:04:19] <valexey> https://www.snoyman.com/static/io-thief.jpg
[16:53:06] <vlad2> А вот в обероне закрывать файлы не надо: https://forum.oberoncore.ru/viewtopic.php?p=50545#p50545
[16:55:53] <TRUE> В ОС Оберон?
[16:58:51] <vlad2> Это был сарказм. Некоторые думают, что не надо закрывать, потому что есть волшебный GC в отличие от С.
[17:09:05] <TRUE> нет, в ОС Оберон файлы закрывать не надо
[17:09:15] <TRUE> там другой принцип работы с данными
[17:09:39] <TRUE> там не такие файлы, как в досе и юниксе
[17:09:59] <TRUE> а в я
[17:10:26] <TRUE> а в языке программирования Оберон нужно делать так, как требует файловая система, с которой работаешь
[17:17:15] <valexey> TRUE: а что там с файлами нужно делать?
[17:18:08] <valexey> типа у тебя не файловый дескриптор, а прямо сразу боевая структура данных через которую ты из своего приложения напрямую фигачишь на диск через ФС?
[17:18:20] <TRUE> да там, по сути, не файлы, а документы. То есть, ты не работаешь с бинарником как таковым.
[17:18:40] <valexey> ну а коль перестал фигачить, то и ладно. система однозадачная, понятия flush там нету.
[17:19:44] <TRUE> флаш там есть. По крайней мере, неявный. Там нет концепции владения файловым дескриптором.
[17:20:05] <TRUE> в том же ББ многие могут одновременно менять документ
[17:36:10] <valexey> ну да, система то однозадачная, поэтому одновременно менять они его не могут.
[17:36:40] <valexey> а там есть что-то вроде seekg и проч?
[17:37:01] <valexey> то есть там позиция не уедет у тебя если кто-то поудаляет что-то из файла или добавить что-то в файл?
[17:41:31] <valexey> как минимум текущая позиция может стать невалидной.
[17:41:44] <valexey> ну либо каждый раз сикать :-)
[18:44:42] <Kemet> В ОС Оберон не нужно закрывать файлы потому ч о она однопользовательская , когда а2 портировали по виндовс, то пришлось таки лобавить Close()
[18:57:20] <TRUE> так я и не говорю, что так лучше. Просто это было особенностью, продиктованной окружением. Для той ОС это было норм
[19:03:43] <valexey> однопользовательская и однозадачная
[19:04:02] <valexey> алсо я не очень понимаю, там что, каждый раз нужно валидировать курсор?
[19:04:27] <valexey> ибо он же может стать невалидным, если ты что-то например по таймеру с файликом делаешь.
[19:04:31] <valexey> ну и сикать не забывать.
[19:13:13] <Kemet> valexey, в а2 проверяется, изменился ли файл в хосте, а так, там у каждого потока свой курсор может быть
[19:16:09] <Kemet> Правильнее, я думаю, испол.зовать специальное апи для наблюдения за файлом на зосте, в в нде де есть, да и в линуксе тоже, и извещать, что произошли изменения, а не проверять при кажлой операции заниси
[19:19:48] <Kemet> Вернее, там буфер есть и изначально пишется в него, а потом сливается в винду, тогда и проверяется.
[19:20:38] <Kemet> Но в целом, подсистему ввода вывода нужно переделывать
[19:24:07] <Kemet> [valexey 23:00]
» однопользовательская и однозадачная
---
Ну, там была некая кооператившина и несколько задач могли работать с одним файлом, пусть по очереди, но тем немЕнее
[19:26:18] <Kemet> Ну и к тому же, в а2, когда открываем на чтение оно расшарено, а когда на запись ' монопольно, ну и монитор есть
[19:28:30] <valexey> ну, на чтение то у всех расшарено :-)