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


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.

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.