[devel] Что это? Переопределение функций?

Дмитрий Ханжин dmitriy.khanzhin на gmail.com
Вс Июл 30 21:12:53 MSK 2017


30.07.2017 20:00, Pavel Vainerman пишет:
> 
>   Ну вроде как определение здесь
> /usr/src/RPM/BUILD/icewm-githubmod/src/base.h
> конфликтует с определением здесь
> /usr/include/string.h
> 
> Здесь не видно.. но судя по.. has a different exception specifier
> не совпадает по спецификации исключений.
> 
> у меня в /usr/include/string.h
> 
> extern size_t strlcpy (char *__dst, __const char *__src, size_t __n)
>       __THROW __nonnull ((1, 2));
> 
> смотрите что там в icewm-githubmod/src/base.h
> 

В /usr/include/string.h:
#ifdef __USE_MISC
/* Copy at most N - 1 characters from SRC to DEST.  */
extern size_t strlcpy (char *__restrict __dest,
		       const char *__restrict __src, size_t __n)
   __THROW __nonnull ((2));

/* Append SRC to DEST, possibly with truncation to keep the total size
    below N.  */
extern size_t strlcat (char *__restrict __dest,
		       const char *__restrict __src, size_t __n)
   __THROW __nonnull ((2));
#endif

В src/base.h:
/* Prefer this as a safer alternative over strcpy. Return strlen(from). */
size_t strlcpy(char *dest, const char *from, size_t dest_size);
/* Prefer this over strcat. Return strlen(dest) + strlen(from). */
size_t strlcat(char *dest, const char *from, size_t dest_size);

Вроде как определения похожи, нафига продублировали.
Вымарал из base.h, собралось. Работоспособность пока не проверял.
Как же-ж лучше сделать?


Подробная информация о списке рассылки Devel