---------- Forwarded message --------- От: Fat-Zer <fatzer2@gmail.com> Date: вт, 21 янв. 2025 г. в 09:05 Subject: Re: [RFR] po4a://manpages-l10n/po/ru/man3/xdr.3.po To: Алексей Шилин <shilin.aleksej@gmail.com> Спасибо за правки; перевод обновлён. Новые изменения: https://salsa.debian.org/Fat-Zer/manpages-l10n/-/commit/d895be521f64a34e80fb6b4077305d23c05185ac Полный список изменений: https://salsa.debian.org/Fat-Zer/manpages-l10n/-/commit/b18a1b2778030b03f01d96ba9c9b40a8c78e297d Скачать PO: https://salsa.debian.org/Fat-Zer/manpages-l10n/-/raw/d895be521f64a34e80fb6b4077305d23c05185ac/po/ru/man3/xdr.3.po?inline=false Переведённая версия страницы приложена к письму. -------------- пн, 20 янв. 2025 г. в 17:57, Алексей Шилин <shilin.aleksej@gmail.com>: > > В Пн, 20/01/2025 в 08:51 +0300, Fat-Zer пишет: > > "I<elproc> указывается фильтр XDR, который производит преобразования > > между " > > "формой элементов массива, используемой в языке С и их внешним " > > "представлением. Данная подпрограмма возвращает 1 при успешном > > завершении, " > > > > Пропущена запятая. > Исправлено > > > "переменными (целочисленные в С) в их внешним представлением. > > Перекодируя " > > "данные, этот фильтр присваивает им значения равные либо единице, > > либо нулю. " > > > > "в" → "и". > Кроме того, пропущена запятая перед "равные". > Исправлено > > "указателя строки. Длина строки должна находится по адресу указанному > > в " > > "находиться". > Кроме того, пропущена запятая перед "указанному". > Исправлено > > "переменной длины и их внешним представлением. В аргументе I<arrp> " > > "указывается адрес указателя на массив, а в I<sizep> адрес количества > > " > > "элементов в массиве, которое не может превышать значение I<maxsize>. > > В " > > > > Просится тире: "а в I<sizep> — адрес количества". > Исправлено > > "I<xdrs>. Уничтожение обычно включает в себя освобождение приватных > > структур " > > "данных, связанных с потоком. При использовании I<xdrs> после вызова > > " > > > "B<xdr_destroy>() результат непредсказуем." > > Является ли слово "приватных" допустимым? Я бы оставил "частных" или > заменил на "закрытых". > Далее, я, возможно, использовал бы устоявшийся перевод "неопределённое > поведение": "результат не определён" — вероятно, он окажется понятнее и > привычнее для читателя. > «частных» — нет, по крайней мере у меня за это глаз сильно цепляется. «закрытых» — да, выглядит неплохо «результат не определён» — да > > "Примитив фильтра, который производит преобразования между значения > > типа " > > "I<double> языка C и их внешним представлением. Данная подпрограмма " > > > > "значениями". > Исправлено > > "Примитив фильтра, который производит преобразования между значениями > > типа " > > "I<enum> (являющиеся по сути целыми числами) языка C и их внешним " > > > > Если "значениями", то "являющимися". > Исправлено > > "указывает на позицию в потоке байтов XDR. Одна особенность, которой > > потоки " > > "XDR желательно должны обладать, — это возможность производиться с > > этим " > > "числом простые арифметические операции, хотя экземпляры потоков XDR > > и не " > > > > "производить". > Исправлено > > "значениями языка c и их внешним представлением. Данная подпрограмма > > " > > "c" → "C". > Исправлено > > "I<xdrs>. Данные потока записываются в участок памяти (или > > считываются из " > > "него), находящегося по адресу I<addr> и длина которого не больше > > I<size> " > > > > "находящийся". > Исправлено > > "Примитив фильтра, который производит преобразования между > > непрозрачными " > > "данными фиксированного размера их внешним представлением. В > > аргументе I<cp> " > > > > "и их". > Исправлено > > "умолчанию. Данные потока считываются из буфера размером I<recvsize>, > > для " > > "которого можно также задать значение ноль, что означает использовать > > " > > "подходящее значение по умолчанию. Когда буфер записи потока > > заполнен, " > > > > "можно также" → "также можно". > Я бы немного видоизменил предложение для лучшей читаемости: "Данные > потока считываются из буфера размером I<recvsize>, для которого также > можно указать значение ноль для использования подходящего значения по > умолчанию". > да, так, пожалуй, лучше; исправлено > > "вызывается I<readit>. Поведение этих двух подпрограмм аналогично > > системным " > > "вызовам B<read>(2) и B<write>(2), за исключением того, что последней > > также " > > "передаётся I<handle> в качестве первого аргумента. Замечание: поле > > I<op> " > > "потока XDR должно быть установлено вызывающим." > > "последней"? Вероятно, лучше использовать "за исключением того, что > подпрограммам также". моя ошибка: здесь я очитался в оригинале; переписал в виде: «…за исключением того, что в качестве первого аргумента в эти подпрограммы передаётся I<handle>.» > Кроме того, мне не очень нравится перевод "caller" как "вызывающим". > Если имеется в виду программист, то, может, так и написать? Ну, или > "пользователем". > Перевод «caller — вызывающим» достаточно последовательно используется в этом корпусе man'ов. Так что это я менять не хочу. И кроме того, как и оригинал это даёт слой абстрактности: «вызывающим» — это тот кто вызывает функцию, а под этим может подразумеваться код, процесс, программист, пользователь, функция и т.д. и додумывать каждый раз этот контекст практически невозможно > > "интерфейсом, вы должны сначала вызвать B<xdrrec_skiprecord>() прежде > > чем " > > "производить какие-либо другие API-вызовы XDR. Это вставляет > > дополнительные " > > "байты в поток для предоставления информации о границе записи. Кроме > > того, " > > "потоки XDR, созданные разными API-функциями B<xdr*_create> не > > совместимы по " > > "этой же причине." > > > > Пропущены запятые: перед "прежде чем", перед "не совместимы" (и не > слитно ли здесь пишется "не"?). > Исправлено; исправлено > > "Примитив фильтра, который производит преобразования между > > размеченными " > > "объединения (discriminated I<union>) языка C и их внешним > > представлением. " > > > > "объединениями". > Исправлено > > "элементов массива, а в I<elproc> указывается фильтр XDR, который > > производит " > > "преобразования между формой элементов массива, используемой в языке > > С и их " > > > > Пропущена запятая после "языке C". Исправлено > > > "Данная подпрограмма всегда возвращает 1. Её можно передаваться > > другим " > > "подпрограммам RPC, которые обязательно требуют функцию в качестве > > аргумента, " > > > > "передавать". Исправлено > > > "UNSIGNED> равно максимальному значению беззнакового целого. Функция > > " > > "B<xdr_wrapstring>() иногда удобно использовать, потому что в пакете > > RPC в " > > > "качестве аргументов передаётся максимум две процедуры XDR, а для " > > > "B<xdr_string>(), одного из наиболее часто используемых примитивов, > > > требует " > > > "три. Данная подпрограмма возвращает 1 при успешном завершении, > > > иначе 0." > > > > > "Функцию". > "требуется три". ИсправленоTitle: xdr(3)
xdr(3) | Library Functions Manual | xdr(3) |
xdr - библиотечные подпрограммы для внешнего представления данных
Стандартная библиотека языка C (libc, -lc)
Эти подпрограммы позволяют программистам на C описывать произвольные структуры данных машинонезависимым способом. Данные для вызовов удалённых процедур передаются с помощью этих подпрограмм.
Представленные ниже прототипы объявлены в <rpc/xdr.h> и используют следующие типы:
typedef int bool_t;
typedef bool_t (*xdrproc_t)(XDR *, void *,...);
Объявление типа данных XDR находится в <rpc/xdr.h>.
bool_t xdr_array(XDR *xdrs, char **arrp, unsigned int *sizep, unsigned int maxsize, unsigned int elsize, xdrproc_t elproc);
bool_t xdr_bool(XDR *xdrs, bool_t *bp);
bool_t xdr_bytes(XDR *xdrs, char **sp, unsigned int *sizep, unsigned int maxsize);
bool_t xdr_char(XDR *xdrs, char *cp);
void xdr_destroy(XDR *xdrs);
bool_t xdr_double(XDR *xdrs, double *dp);
bool_t xdr_enum(XDR *xdrs, enum_t *ep);
bool_t xdr_float(XDR *xdrs, float *fp);
void xdr_free(xdrproc_t proc, char *objp);
unsigned int xdr_getpos(XDR *xdrs);
long *xdr_inline(XDR *xdrs, int len);
bool_t xdr_int(XDR *xdrs, int *ip);
bool_t xdr_long(XDR *xdrs, long *lp);
void xdrmem_create(XDR *xdrs, char *addr, unsigned int size, enum xdr_op op);
bool_t xdr_opaque(XDR *xdrs, char *cp, unsigned int cnt);
bool_t xdr_pointer(XDR *xdrs, char **objpp, unsigned int objsize, xdrproc_t xdrobj);
void xdrrec_create(XDR *xdrs, unsigned int sendsize, unsigned int recvsize, char *handle, int (*readit)(char *, char *, int), int (*writeit)(char *, char *, int));
bool_t xdrrec_endofrecord(XDR *xdrs, int sendnow);
bool_t xdrrec_eof(XDR *xdrs);
bool_t xdrrec_skiprecord(XDR *xdrs);
bool_t xdr_reference(XDR *xdrs, char **pp, unsigned int size, xdrproc_t proc);
xdr_setpos(XDR *xdrs, unsigned int pos);
bool_t xdr_short(XDR *xdrs, short *sp);
void xdrstdio_create(XDR *xdrs, FILE *file, enum xdr_op op);
bool_t xdr_string(XDR *xdrs, char **sp, unsigned int maxsize);
bool_t xdr_u_char(XDR *xdrs, unsigned char *ucp);
bool_t xdr_u_int(XDR *xdrs, unsigned int *up);
bool_t xdr_u_long(XDR *xdrs, unsigned long *ulp);
bool_t xdr_u_short(XDR *xdrs, unsigned short *usp);
bool_t xdr_union(XDR *xdrs, enum_t *dscmp, char *unp, const struct xdr_discrim *choices, xdrproc_t defaultarm); /* may equal NULL */
bool_t xdr_vector(XDR *xdrs, char *arrp, unsigned int size, unsigned int elsize, xdrproc_t elproc);
bool_t xdr_void(void);
bool_t xdr_wrapstring(XDR *xdrs, char **sp);
Описание терминов данного раздела смотрите в attributes(7).
Интерфейс | Атрибут | Значение |
xdr_array(), xdr_bool(), xdr_bytes(), xdr_char(), xdr_destroy(), xdr_double(), xdr_enum(), xdr_float(), xdr_free(), xdr_getpos(), xdr_inline(), xdr_int(), xdr_long(), xdrmem_create(), xdr_opaque(), xdr_pointer(), xdrrec_create(), xdrrec_eof(), xdrrec_endofrecord(), xdrrec_skiprecord(), xdr_reference(), xdr_setpos(), xdr_short(), xdrstdio_create(), xdr_string(), xdr_u_char(), xdr_u_int(), xdr_u_long(), xdr_u_short(), xdr_union(), xdr_vector(), xdr_void(), xdr_wrapstring() | Безвредность в нитях | MT-Safe |
rpc(3)
Следующие руководства:
Русский перевод этой страницы руководства разработал(и) Azamat Hackimov <azamat.hackimov@gmail.com>, Yuri Kozlov <yuray@komyakino.ru>, Иван Павлов <pavia00@gmail.com>, Kirill Rekhov <krekhov.dev@gmail.com> и Alexander Golubev <fatzer2@gmail.com>
Этот перевод является свободной программной документацией; он распространяется на условиях общедоступной лицензии GNU (GNU General Public License - GPL, https://www.gnu.org/licenses/gpl-3.0.html версии 3 или более поздней) в отношении авторского права, но БЕЗ КАКИХ-ЛИБО ГАРАНТИЙ.
Если вы обнаружите какие-либо ошибки в переводе этой страницы руководства, пожалуйста, сообщите об этом разработчику(ам) по его(их) адресу(ам) электронной почты или по адресу списка рассылки русских переводчиков.
2 мая 2024 г. | Справочные страницы Linux 6.9.1 |