`

Ubuntu下能用man来查C函数了收藏

阅读更多
在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=
分享到:
评论

相关推荐

    Ubuntu 下 man 2 手册(pdf格式)

    将 ubuntu 20.04 下 man 2 下所有的库函数导出为 pdf 文件,方便快速查看阅读。 积分不够的,可以按如下步骤导出。 (0)按照 manpages, (1)man -S 2 -k . | awk '{print $1}' | xargs -I {} sh -c 'man -Tps {}...

    Ubuntu/Debian man帮助页扩展(2 系统调用部分,3 C函数部分...)3.01-1

    Ubuntu/Debian man帮助页扩展3.01-1 第二部分---系统调用介绍 第三部分---C函数介绍

    man命令安装函数库

    前几天看书,看到用man命令可以查看c语言库函数的函数原型,就今天试了试。可是不行。提示没有我要查找的那个条目。上网搜解决方案。原来ubuntu中man的手册默认没有装

    Ubuntu权威指南(2/2)

    1.3.2 使用man命令联机查询 系统参考手册 6 1.3.3 使用info命令查询命令的相关信息 8 1.4 安装Ubuntu Linux系统 9 1.4.1 安装前的准备 10 1.4.2 安装Ubuntu Linux系统 11 1.4.3 安装后的软件维护与更新 16 第2章 ...

    Ubuntu权威指南(1/2)

    1.3.2 使用man命令联机查询 系统参考手册 6 1.3.3 使用info命令查询命令的相关信息 8 1.4 安装Ubuntu Linux系统 9 1.4.1 安装前的准备 10 1.4.2 安装Ubuntu Linux系统 11 1.4.3 安装后的软件维护与更新 16 第2章 ...

    printf:执行我们自己的printf函数

    程序和函数将使用gcc 4.8.4使用标志-Wall -Werror -Wextra和-pedantic进行编译 代码必须遵循风格 不允许使用全局变量 授权的函数和宏: write (man 2写) malloc (man 3 malloc) free (3人免费) va_start ...

    Linux中使用poll函数的用法

    poll函数用法可以man一下。这里提供一个可以运行的示例。  程序流程:  父进程启动并创建子进程  子进程通过管道发送数据给父进程  父进程同时监听管道数据和shell输入,阻塞500毫秒发现没有数据打印一个...

    printf:该项目是对C标准库函数printf的重新创建

    允许使用C语言标准功能: 写(man 2写) va_start(男人3 va_start) va_end(男人3 va_end) va_arg(男人3 va_arg)汇编我们的代码是这样编译的: $ gcc -Wall -Werror -Wextra -pedantic *.c 我们所有的文件都...

    jpeg转BMP565图像的jni代码

    目前是jni库代码添加man函数可以用作二进制或者ubuntu直接用 ubuntu直接使用请用下面的命令编译:g++ tobmp.cpp -ljpeg 程序直接把jpg图片转换为bmp565的图片

    printf

    印刷品打印文本和数据类型说明符的函数要求* Authorized functions and macros * write (man 2 write) * malloc (man 3 malloc) * free (man 3 free) * va_start (man 3 va_start) * va_end (man 3 va_end) * va_...

    linux.docx

    1、 man 通过man手册可以查看命令及函数的帮助信息 linux中区分大小写 linux@ubuntu:~$ 用户名@计算机名:路径$ whoami:显示用户名 hostname:显示计算机名 pwd:显示当前路径的绝对路径 ~:家目录 /home/linux /:...

    UbuntuChina12

    1.3.2 使用man命令联机查询 系统参考手册 6 1.3.3 使用info命令查询命令的相关信息 8 1.4 安装Ubuntu Linux系统 9 1.4.1 安装前的准备 10 1.4.2 安装Ubuntu Linux系统 11 1.4.3 安装后的软件维护与更新 16 第2章 ...

    printf:分组进行项目创建自己的pritf功能(这是Dania Jibellis,Sebastian Cardona,Louvani Hernandez制作的

    __Printf 根据格式产生输出的函数。 _printf是C编程功能printf的自定义实现。 自2021年2月25日启动该程序以来,该项目是Holberton学校队列14名...所有文件都将在Ubuntu 14.04 LTS上编译程序和函数将使用gcc 4.8.4使

    uboott移植实验手册及技术文档

    本文件中的 nand_init()函数,本例使用后者。fs2410.c代码如下: #if defined(CONFIG_CMD_NAND) typedef enum { NFCE_LOW, NFCE_HIGH } NFCE_STATE; static inline void NF_Conf(u16 conf) { S3C2410_...

Global site tag (gtag.js) - Google Analytics