当前位置: 技术问答>linux和unix
如何查找库函数的详细信息
来源: 互联网 发布时间:2016-05-19
本文导语: 有时看到别人的源程序,引用一些库的函数,甚至关键字,自己又不熟悉,从哪能查到资料呢?(man是不行的,基本都查不到) 有人说devhelp,可是装上一看内容是开发环境和GTK什么的,我想要的一是C/C++标准库...
有时看到别人的源程序,引用一些库的函数,甚至关键字,自己又不熟悉,从哪能查到资料呢?(man是不行的,基本都查不到)
有人说devhelp,可是装上一看内容是开发环境和GTK什么的,我想要的一是C/C++标准库,比如文件读写什么的,还有一个古怪的东西 __init,原文是static int __init hello (void),用什么包能查到呢?
有人说devhelp,可是装上一看内容是开发环境和GTK什么的,我想要的一是C/C++标准库,比如文件读写什么的,还有一个古怪的东西 __init,原文是static int __init hello (void),用什么包能查到呢?
|
1、如果是标准函数库,可以到网上找到源码,比如glibc,最新版的下载地址:
http://ftp.gnu.org/gnu/glibc/glibc-2.7.tar.gz
2、在linux内核中,__init的定义如下(.srcincludelinuxinit.h):
__init宏显示的指定了在链接的时候,将指定的数据或者函数放入特定的段中。
linux中把某些启动或初始化时用的数据加上__init标识,用完了以后就把这部分内存释放掉,因为这部分内存仅
仅是开始的时候使用而已。这个系列的宏在内核中和驱动程序中非常常见。
http://ftp.gnu.org/gnu/glibc/glibc-2.7.tar.gz
2、在linux内核中,__init的定义如下(.srcincludelinuxinit.h):
/* These are for everybody (although not all archs will actually
discard it in modules) */
#define __init __section(.init.text) __cold
#define __initdata __section(.init.data)
#define __initconst __section(.init.rodata)
#define __exitdata __section(.exit.data)
#define __exit_call __used __section(.exitcall.exit)
__init宏显示的指定了在链接的时候,将指定的数据或者函数放入特定的段中。
linux中把某些启动或初始化时用的数据加上__init标识,用完了以后就把这部分内存释放掉,因为这部分内存仅
仅是开始的时候使用而已。这个系列的宏在内核中和驱动程序中非常常见。
|
你要问的库函数,分为两类,一类是c库函数,一类是linux的系统调用。
关于c库函数,如果是标准的,你在msdn上就能查看,比如malloc,read等。
对于linux系统调用,用man很方便,不是只是简单的一个man,还可以是比如
man 2 read, 这个2可以换成其他,你试试就知道,我已经好多年没玩linux了。
__init hello说明这个函数编译后的代码放在一个名为init的段中,这个段中的函数在
linux初始化时被依次调用。
关于c库函数,如果是标准的,你在msdn上就能查看,比如malloc,read等。
对于linux系统调用,用man很方便,不是只是简单的一个man,还可以是比如
man 2 read, 这个2可以换成其他,你试试就知道,我已经好多年没玩linux了。
__init hello说明这个函数编译后的代码放在一个名为init的段中,这个段中的函数在
linux初始化时被依次调用。
|
这个不是库函数的问题。
关于__init你看一下kernel编程就明白了,它表明该函数仅在初始化期间使用。
关于__init你看一下kernel编程就明白了,它表明该函数仅在初始化期间使用。
|
在win下用msdn来看吧