Описание тега strlcpy

Нестандартная функция C, происходящая из OpenBSD: `strlcpy` копирует строку с завершающим нулем в неперекрывающийся буфер размера` n`. Возвращает исходную длину `s` (исключая завершающий \0). За исключением случаев `n` == 0, строка назначения всегда заканчивается нулем. Если `s` + 1 > `n`, целевая копия усекается. Используйте этот тег для вопросов об использовании функции, реализации и связи с другими строковыми функциями, такими как `strcpy` или` strncpy`.
3 ответа

Почему эта реализация 'strncpy' работает?

Я должен переписать для назначения функцию, которая имитирует поведение strncpy, после многих проб и ошибок, некоторой внешней помощи, вот финальный код: 15 char *ft_strncpy(char *dest, char *src, unsigned int n) 16 { 17 unsigned int i; 18 unsigned …
19 фев '19 в 16:24
1 ответ

Что определяет strscpy в C?

Из этого видео на YouTube на Kees Cook из linux.conf.au 2019 он упоминает strscpy как предпочтительный, но обычно делает то, что хотят пользователи (меньше NUL -padding). Тем не менее, он не говорит, что определяет это (спецификация или заголовок), …
08 фев '19 в 22:39
8 ответов

Почему strlcpy и strlcat считаются небезопасными?

Я это понимаю strlcpy а также strlcat были разработаны как безопасные замены для strncpy а также strncat, Тем не менее, некоторые люди по-прежнему считают, что они небезопасны, и просто вызывают проблемы другого типа. Может кто-нибудь привести приме…
22 янв '10 в 04:13
3 ответа

Почему unsigned int, а не пустота для strlcat и strlcpy?

Я не понимаю, почему мы должны вернуть unsigned int за strlcat а также strlcpyзачем нам это? это не цель функции. Спасибо за ваши ответы
17 авг '18 в 20:44
3 ответа

strlcpy: источник и назначение указывают на один и тот же объект

Я только начинаю понимать strlcpy. size_t strlcpy(char *destination, const char *source, size_t size); Мой гипотетический вопрос: что, если пункт назначения и источник указывают на один и тот же объект? Пример: char destination[100]; const char*sour…
06 мар '20 в 22:05
2 ответа

проблема с моей собственной реализацией strlcpy?

Здравствуйте, я столкнулся с проблемой при тестировании реализации strlcpy long unsigned int ft_strlcpy(char *dst, const char *src, unsigned int len) { unsigned int l; unsigned int i; i = 0; while (i < len - 1) { if (*src != '\0') *dst++ = *src++…
04 ноя '21 в 22:12
2 ответа

Какова цель strlcpy и что было в первой версии ее руководства?

Прочитав man strlcpy, я встретил пример: Since it is known how many characters were copied the first time, things can be sped up a bit by using a copy instead of an append: char *dir, *file, pname[MAXPATHLEN]; size_t n; ... n = strlcpy(pname, dir, s…
23 июн '23 в 11:16