C语言中strscpy函数的定义来源(标准/头文件)是什么?
关于 strscpy 的定义来源
你查不到strscpy的man手册是完全正常的——因为它根本不是标准C库或者POSIX标准里的函数,而是Linux内核专属的字符串处理工具。
详细背景
- 正如Kees Cook在2019年linux.conf.au上提到的,
strscpy是内核为了安全高效的字符串拷贝设计的,相比strlcpy它做了更少的NUL填充,更适合内核场景的需求。 - 它的定义和实现都在Linux内核代码中,如果你要在内核模块里使用它,需要包含内核头文件
<linux/string.h>。 - 内核函数不会出现在普通系统的man手册中,毕竟它不是给用户空间程序用的。要是你想找它的文档,得去查看Linux内核的官方文档或者直接阅读内核源码里的注释。
额外提醒
如果是在用户空间编程,你没法直接调用strscpy。用户空间里类似的安全拷贝选项,常用的有strlcpy(很多Linux发行版的libc已经支持,源自BSD),或者C11标准里的strncpy_s(安全增强型,但使用起来更繁琐)。
内容的提问来源于stack exchange,提问作者Evan Carroll
相关产品推荐
相关产品推荐

