关于C函数原型中[.len]标注的文档查询及用法确认
C函数原型中[.len]类标注的官方文档说明
这种[.len]/[.count]标注是Linux man手册特有的扩展注释语法,不属于标准C语法,主要用来明确指针参数和对应长度参数的关联,提升函数原型的可读性。
具体作用说明
- 对于
int pkey_mprotect(void addr[.len], size_t len, int prot, int pkey);,[.len]用来提示读者:addr指向的内存块长度由后续的len参数指定 - 对于
ssize_t read(int fd, void buf[.count], size_t count);,[.count]则表示buf的有效数据长度对应后面的count参数
关于文档的说明
你在man-pages(7)中找不到相关记录是因为它是man手册对函数原型的非标准扩展,并非正式的语法规范,也不会被C编译器识别——编译时编译器会直接忽略这类标注,将void addr[.len]等价于void *addr处理。
内容的提问来源于stack exchange,提问作者Anthony Alba
相关产品推荐
相关产品推荐

