Ubuntu下能用man来查C函数了

来源:互联网 发布:ios6很多软件不支持 编辑:程序博客网 时间:2024/04/28 07:09
http://www.vhack.cn/lik/?p=18

在Linux下写程序,遇一个函数知道怎么用就得上网去,没有类似MSDN之类的软件,烦得很。看网上很多人都说用man很方便,只要man一下你想了解的函数就行了,可我在man之后什么都得,比如 man printf,结果就是没有入口(No manual entry for printf)

今天专门上网搜了下,发现原来是因为Ubuntu默认没有装manpages-dev,而函数都在这个包里,把这个安装上,果然就能用man函数了。

还有一个manpages-zh,是中文的帮助,把这个安装包装上,再改些配置就能看中文的帮助了。
首先,编码要改为utf8的,又是这该死的编码问题……用下面这个脚本(网上一搜都是一样的,应该是Ubuntu中文论坛中eexpress写的),随便存成个.sh文件,比如:chman.sh,然后在当前目录下执行 sudo sh ./chman.sh
#!/bin/bash
for k in /usr/share/man/zh_CN/*/*.gz; do
echo $k
j=`echo $k | sed “s//.gz$//”`
gunzip $k
iconv -f gb18030 -t utf8 $j > tmp
mv tmp $j
gzip $j
done

这时就可以用
man -M /usr/share/man/zh_CN printf
来查看printf的中文帮助了。
每次都输入这么长的命令实在是太烦了,网上有两种方法
1. alias cman=’man -M /usr/share/man/zh_CN’
重命名一下,在这个终端中就能用cman来查看中文帮助了。把这一行加入/etc/bash.bashrc中去,以后就都能在终端中用cman了,不过还有很多没有中文的帮助,就还得用man了。加/etc/profile中却还是不能在终端中运行,但用ctrl+alt+F1切换Shell中却能用了,明白是什么原因…

2. 改/etc/manpath.config文件,在/usr/share/man前面加上/usr/share/man/zh_CN,即把AMNPATH_MAP这段改成如下所示,这样man就会先在zh_CN的目录中搜索了,没有中文帮助时,就会给出英文的
#———————————————————
# set up PATH to MANPATH mapping
# ie. what man tree holds man pages for what binary directory.
#
# *PATH* -> *MANPATH*
#
MANPATH_MAP /bin /usr/share/man/zh_CN /usr/share/man
MANPATH_MAP /usr/bin /usr/share/man/zh_CN /usr/share/man
MANPATH_MAP /sbin /usr/share/man/zh_CN /usr/share/man
MANPATH_MAP /usr/sbin /usr/share/man/zh_CN /usr/share/man
MANPATH_MAP /usr/local/bin /usr/local/man
MANPATH_MAP /usr/local/bin /usr/local/share/man
MANPATH_MAP /usr/local/sbin /usr/local/man
MANPATH_MAP /usr/local/sbin /usr/local/share/man
MANPATH_MAP /usr/X11R6/bin /usr/X11R6/man
MANPATH_MAP /usr/bin/X11 /usr/X11R6/man
MANPATH_MAP /usr/games /usr/share/man/zh_CN /usr/share/man
MANPATH_MAP /opt/bin /opt/man
MANPATH_MAP /opt/sbin /opt/man

现在仅仅知道了怎样函数,Linux下应该还有很多方便写程序的工具的,可惜都知道。唉,所谓工欲善其事,必先利其器,只是连有啥器都知道,所以说Linux下写程序还是很不爽

最后写上点man的小用法,一般只需直接man+所命令,但有相同命令时,man出来的结果很可能不是想要的,可以先用man -f 查询,然后用man+数字+命令名查询。程序函数一般可以用man 2+函数,如直接man open出来的并不是open()函数的帮助,发现有俩open,第二个是找开文件,这时就可用man 2 open了
lik@lik-laptop:~$ man -f open
open (1) - start a program on a new virtual terminal (VT).
open (2) - open and possibly create a file or device
lik@lik-laptop:~$ man 2 open

见: http://forum.ubuntu.org.cn/viewtopic.php?t=12816&start=0&postdays=0&postorder=asc&highlight=

 
原创粉丝点击