即使包含“string.h”,也隐式声明 strlcpy 和 strlcat

Bil*_*low 10 man

当我尝试调用函数strlcpystrlcat在 C 文件中时,Gcc 抛出错误:

error : implicit declaration of strlcpy
error : implicit declaration of strlcat
Run Code Online (Sandbox Code Playgroud)

在哪个库中可以找到这些函数及其手册页?我包括string.h但它不会改变任何东西。我正在运行 Linux Mint 17.2 和 gcc 4.8.4

Mar*_*ick 14

在 Ubuntu、Mint 和亲戚上,strlcpy并且strlcatlibbsd-dev. 跑

sudo apt-get install libbsd-dev
Run Code Online (Sandbox Code Playgroud)

这将安装库、头文件和手册页。

要使用 C 代码中的函数,请添加以下行

#include <bsd/string.h>
Run Code Online (Sandbox Code Playgroud)

到您的文件,并将-lbsd或更便携的添加$(pkg-config --libs libbsd)到您的gcc命令行以链接库。