我想搜索与restrict
关键字匹配的 POSIX 函数,我的想法(对其他想法持开放态度)是搜索 POSIX 程序员手册的概要部分并\<restrict\>
输出匹配行。我知道我可以使用 匹配章节-S
并搜索手册页-K
。如何将搜索限制为 POSIX 程序员手册?有没有一种方法可以按“手动”进行过滤,即通过手册页顶部的居中文本进行过滤?
答案1
POSIX 程序员手册中有自己的专用章节man
,即0p
(头文件)、1p
(命令)和3p
(函数)。您可以将搜索限制在这些章节中:
[haxiel@testvm1 ~]$ man -k -s 0p,1p,3p mmap
mmap (3p) - map pages of memory
如果要搜索全文,请将-k
选项 (apropos) 替换为-K
选项 (global apropos)。默认情况下,这将为您提供包含搜索词的所有手册页的交互式集合(请注意,第一个结果会自动打开,并且不在下面显示的列表中)。
[haxiel@testvm1 ~]$ man -K -s 0p,1p,3p 'restrict'
--Man-- next: cpio.h(0p) [ view (return) | skip (Ctrl-D) | quit (Ctrl-C) ]
--Man-- next: dirent.h(0p) [ view (return) | skip (Ctrl-D) | quit (Ctrl-C) ]
--Man-- next: dlfcn.h(0p) [ view (return) | skip (Ctrl-D) | quit (Ctrl-C) ]
--Man-- next: glob.h(0p) [ view (return) | skip (Ctrl-D) | quit (Ctrl-C) ]
--Man-- next: iconv.h(0p) [ view (return) | skip (Ctrl-D) | quit (Ctrl-C) ]
如果您只需要匹配页面的列表,请使用-w
(where) 选项。
[haxiel@testvm1 ~]$ man -K -w -s 0p,1p,3p 'restrict'
/usr/share/man/man0p/aio.h.0p.gz
/usr/share/man/man0p/cpio.h.0p.gz
/usr/share/man/man0p/dirent.h.0p.gz
/usr/share/man/man0p/dlfcn.h.0p.gz
/usr/share/man/man0p/glob.h.0p.gz
/usr/share/man/man0p/iconv.h.0p.gz
/usr/share/man/man0p/in.h.0p.gz
iconv.h.0p.gz
如果您随后决定从结果中检查手册页,则可以通过运行来完成man 0p iconv.h
。
该restrict
关键字以三种不同的形式出现在 POSIX 程序员手册中:const char *restrict
、char **restrict
和char *const [restrict]
。我们可以更新man
命令以使用正则表达式搜索这些模式:
man -K -w -s 0p,1p,3p --regex '(\*+|\[)restrict'
这将搜索并返回包含上述三种形式之一的手册页。