[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [RFR] Перевод sleep(1)



On Fri, Dec 08, 2006 at 03:14:21PM +0300, YANDEX wrote:
> Здравствуйте, участники Проекта.
> 
> Вы писали 8 декабря 2006 г., 14:24:26:
> 
> > IMHO, должно быть либо "СТАТУС ЗАВЕРШЕНИЯ", либо "КОД ОШИБКИ". А "код
> > завершения" звучит как-то странно.
> А если 0, так ошибки-то и не будет :)
> Короче, сколько людей, столько мнений
> > Мне больше нравится первый вариант :)
> 
> > Усечён (truncated) означает, что файл будет не "затёрт", а "обрезан",
> > начиная с 0-й позиции, т.е. он станет нулевой длины. При этом указатель
> > позиции (seek), с которой будет производиться чтение/запись (в примере
> > - запись) перемещается в позицию 0, т.е. в начало файла. Кажется, так.
> Ну, может, Вы все конечно там мегапрограммисты, но мне, как тупому
> юзеру при чтении справки по cat абсолютно неважно, что конкретно
> произойдёт с байтами на диске и какие метаморфозы произойдут с длиной
> файла в процессе выполнения команды. Мне важно знать, что я потеряю
> свой старый файл и получу новый. При чтении "усечён" мне приходится
> проверять на практике, что это значит. При чтении затёрт, я понимаю
> сразу.
> 
Важно или неважно, это сугубо личное дело.  Маны, как и любая
другая техническая литература, не являются учебником, и требуют
определённого уровня подготовки читателя.  По этой причине,
давать в таком мане определение термина "усечение файла" (file
truncation) никто никогда не будет, ни в английской, ни в
русской версиях.

> А что тогда значит "затёрт"? При затирании файла происходят те же
> самые процессы, разве нет?
> 
Затирание делается путём открытия файла на запись, и
переписыванием всех его данных чем-то другим.  При этом,
как правило (зависит от файловой системы и др. факторов),
запись будет производиться физически в то же место, где
были оригинальные данные.  Например в случае с флопиками
и MS-DOS будет именно так.  Или, если абстрагироваться,
по-другому.  Усечь: взять исписанный листик и выбросить
в корзину для мусора.  Затереть: начёркать на нём так,
чтобы никто не понял, что там было написано, потом всё
равно выкинуть.  ;)

> Под "затёрт" я имею в виду "старое содержимое файла
> будет заменено новой информацией"
> 
Это правильно, потому что при затирании не меняется
длина файла (после затирания может последовать операция
удаления или усечения, но это уже другая операция).
При усечении же, новое содержимое файла просто отсутствует,
так как файл будет нулевой длины, поэтому затирания
старых данных как такового не происходит.

> По поводу EXIT CODE и прочее. Код ошибки будет по-английски ERROR
> CODE, но это вовсе не значит, что русское КОД ОШИБКИ не подойдёт для
> той самой секции. Как лингвист-любитель могу сказать, что
> семантические значения английских и русских слов не тождественны, не
> говоря уж о словосочетаниях.
> 
[На это ответил в другом письме.]

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

> Надо опираться на русскую сложившуюся терминологию, если
> таковая имеется.
> 
Проблема в том, что вы по-русски это технически неправильно
называете, предлагая CODE.  Пожалуйста, перечитайте ещё раз
письма, где я объяснял что в разделе EXIT STATUS описываются
не только коды возврата, а и статус работы программы как
таковой: всё получилось; получилось, но не всё; нифига не
получилось.  Причём часто даются объяснения, что именно
получилось или нет.  Пробую объяснить ещё раз: в этом
разделе описываются не только КОДЫ ЗАВЕРШЕНИЯ, (0, >0),
но и СТАТУС работы, сделанной самой программой, на словах.

> Там речь идёт о понятии EXIT STATUS, типа, о
> "состоянии программы после выхода" или выход у нас не говорят,
> 
О "состоянии программы после выхода" у нас говорят, он
существует и доступен для исследования родителю процесса.
Например:

$ time -l echo find /etc -name nonexistent
find /etc -name nonexistent
        0,00 real         0,00 user         0,00 sys
       496  maximum resident set size
         4  average shared memory size
         4  average unshared data size
       128  average unshared stack size
        83  page reclaims
         0  page faults
         0  swaps
         0  block input operations
         0  block output operations
         0  messages sent
         0  messages received
         0  signals received
         1  voluntary context switches
         0  involuntary context switches

> тогда
> "после завершения" поэтому, ИМХО, неправильно просто дословно перевести как
> СТАТУС ВЫХОДА и успокоиться на этом.
> 
Про СТАТУС ВЫХОДА можно забыть навсегда.  :-)
СТАТУС ВЫХОДА был уже вчера заменён на СТАТУС ЗАВЕРШЕНИЯ.
Это именно статус ЗАВЕРШЕНИЕ, ни до, ни после, а именно
самого завершения, например: "статус завершения программы
такой: программа обработала все данные, и сигнализирует
об этом кодом возврата/завершения/выхода 0".  Всё что
внутри кавычек это СТАТУС, а не только "0".


Cheers,
-- 
Ruslan Ermilov
ru@xxxxxxxxxxx
FreeBSD committer

Attachment: pgptGtUrZ8Fi6.pgp
Description: PGP signature