RU/2: Форум. Общение пользователей и разработчиков OS/2 (eCS). : Ответить на сообщение
Имя:
e-mail:
FIDO:
Home page:
сохранить данные о вас
Тема:
> >>>>это я про то что определение > >>>>"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 ... > ... > ----- > и получится одинаковый код на выходе. > то есть это в лучшем случае - если компилер нормально разберётся. > в реальности же в си столько "атомарных" и прочих заморочек, > что компилер "не понимает что ты хотел ему сказать" :), > и в результате программа на выходе пухнет и глючит. >
_, __, _, __,
/_\ |_) /_\ |_)
| | | | | | \
~ ~ ~ ~ ~ ~ ~
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.