Declaración implícita de strlcpy y strlcat incluso con "string.h" incluido

9

Gcc arroja un error cuando intento llamar a las funciones strlcpyo strlcaten un archivo C:

error : implicit declaration of strlcpy
error : implicit declaration of strlcat

¿En qué biblioteca puedo encontrar esas funciones y su página de manual? Incluí string.hpero no cambia nada. Estoy ejecutando Linux Mint 17.2 y gcc 4.8.4

Bilow
fuente
1
man strlcpymostrará su página de manual. Si tiene problemas con su código, debe publicar el código , publicar la línea de comandos del compilador y hacerlo en Desbordamiento de pila, ya que las preguntas de programación están fuera de tema aquí.
Gilles 'SO- deja de ser malvado'
1
strlcpy()y similares están disponibles en libc en la mayoría de las variantes de UNIX. Linux es una excepción, ya que a un antiguo encargado de mantenimiento de glibc no le gustaban aunque no fuera capaz de explicar por qué o señalar un concepto mejor. El software que se transfiere a Linux generalmente implementa versiones propias de estas funciones.
schily

Respuestas:

14

En Ubuntu, Mint y familiares, strlcpyy strlcatestán disponibles en el libbsd-devpaquete . correr

sudo apt-get install libbsd-dev

Esto instalará las bibliotecas, los archivos de encabezado y las páginas de manual.

Para usar las funciones del código C, agregue la línea

#include <bsd/string.h>

a sus archivos y agregue -lbsd, o el más portátil $(pkg-config --libs libbsd), a su gcclínea de comando para vincular la biblioteca.

Mark Plotnick
fuente