RU/2: Форум. Общение пользователей и разработчиков OS/2 (eCS). : ... и всякое такое


Список сообщений | Написать новое | Ответить на сообщение | Домой Поиск:
Предыдущее сообщение | Следующее сообщение
From : Alexander Conon, http://alexander-conon.narod.ru/
To : Василий А. Сидоров
Subj : ... и всякое такое

>>>>это я про то что определение
>>>>"DosOpen opens a new file, an existing file,
>>>>or a replacement for an existing file"
>>>>должно быть таким
>>>>"DosOpen opens an existing file"
>>>А чтобы, значит, создать новый файл должна быть отдельная функция DosCreateFile,
>>и она там уже есть, но в неявном виде.
>Ты как-то очень избирательно читаешь.
нувоттебеиздрасьте...

>DosOpen в его текущей реализации позволяет не просто открыть существующий файл,
>но и решить что делать, если надо создать файл, а он уже существует
>или наоборот - что делать если файл существует, а надо бы его создать.
>Весь этот функционал реализован внутри одной функции,
>а это гарантирует атомарность операции.
нет такой атомарности, и быть не может !

>>а в явном виде есть например DosCreateQueue,
>>несмотря на то что есть DosOpenQueue.
>>и кст DosOpenQueue очередь создать не может :)
>А DosOpenPipe - вообще нет.
>И что?
ты объяснение скипнул : цэ-логика в действии - тут нужно, тут не нужно...

>>>а для того, чтобы (атомарно) усечь открываемый файл - ещё и DosReplaceFile?
>>>А для того, чтобы (атомарно) усечь или создать - третья,
>>>которая (унутре) будет звать или DosCreateFile или DosReplaceFile?
>>нет. усечением и увеличением должна заниматься DosSetFileSize.
>А как программист должен разрулить ситуацию
>"Открыть файл, если его нет, но не усекать, если он существует"?
>"Создать файл ..."
ровно так как твою "атомарную" функцию будет компилер разруливать :
-----
rc = open...
if rc = ... then ...
...
-----
и получится одинаковый код на выходе.
то есть это в лучшем случае - если компилер нормально разберётся.
в реальности же в си столько "атомарных" и прочих заморочек,
что компилер "не понимает что ты хотел ему сказать" :),
и в результате программа на выходе пухнет и глючит.


Fri 25 Jul 2008 16:15 Mozilla/5.0 (OS/2; U; Warp 4.5; ru; rv:1.8.1.12) Gecko/20080




Programmed by Dmitri Maximovich, Dmitry I. Platonoff, Eugen Kuleshov.
25.09.99 (c) 1999, RU/2. All rights reserved.
Rewritten by Dmitry Ban. All rights ignored.