OS X终端中apropos pthread无结果的原因及解决办法
为什么OS X上
apropos pthread无结果,以及解决办法 我之前也碰到过这个问题,OS X的apropos和Linux版本的行为差异,主要是因为两者的man手册索引机制和默认搜索范围不一样:
问题根源
虽然Mac上确实存在pthread相关的手册页(比如man 3 pthread_create能正常打开),但:
- OS X的
makewhatis命令在生成whatis数据库时,可能没有完整索引section 3(库函数)下的所有内容,或者默认的apropos搜索范围不包含section 3; - Linux的
apropos默认会搜索所有section的手册条目,而OS X的apropos可能默认只优先搜索section 1(用户命令)的内容,导致pthread这类库函数的条目没被匹配到。
解决办法
试试下面这些方法,应该能让你获取到pthreads相关的手册条目:
- 指定section搜索
直接用apropos的-s参数指定搜索section 3(库函数):
apropos -s 3 pthread
或者用man -k(因为apropos其实是man -k的别名),同样指定section:
man -s 3 -k pthread
- 重新生成指定目录的man索引
你已经执行过sudo /usr/libexec/makewhatis,但可以尝试单独针对section 3的手册目录重新生成索引,确保pthread相关的条目被正确收录:
sudo /usr/libexec/makewhatis /usr/share/man/man3/
- 直接搜索man页目录
如果上面的方法还是不行,可以用grep直接扫描section 3的手册文件,找出所有包含pthread的条目:
grep -r "pthread" /usr/share/man/man3/ | grep -E "^.*/([^/]+)\.3:" | cut -d: -f1 | xargs basename | sort -u
这个命令会列出所有pthread相关的手册页名称,你可以直接用man 3 <名称>查看具体内容。
内容的提问来源于stack exchange,提问作者camercu
相关产品推荐
相关产品推荐

