如何查找库函数的详细信息

sarcophile 2009-02-23 03:27:02
有时看到别人的源程序,引用一些库的函数,甚至关键字,自己又不熟悉,从哪能查到资料呢?(man是不行的,基本都查不到)
有人说devhelp,可是装上一看内容是开发环境和GTK什么的,我想要的一是C/C++标准库,比如文件读写什么的,还有一个古怪的东西 __init,原文是static int __init hello (void),用什么包能查到呢?
...全文
285 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
有时看到别人的源程序,引用一些库的函数,甚至关键字,自己又不熟悉,从哪能查到资料呢?

关键是什么样的库函数,自己对头文件,总能下到源码的.
ewuby 2009-02-23
  • 打赏
  • 举报
回复
在win下用msdn来看吧
zengwujun 2009-02-23
  • 打赏
  • 举报
回复
你要问的库函数,分为两类,一类是c库函数,一类是linux的系统调用。
关于c库函数,如果是标准的,你在msdn上就能查看,比如malloc,read等。
对于linux系统调用,用man很方便,不是只是简单的一个man,还可以是比如
man 2 read, 这个2可以换成其他,你试试就知道,我已经好多年没玩linux了。

__init hello说明这个函数编译后的代码放在一个名为init的段中,这个段中的函数在
linux初始化时被依次调用。
独孤过儿 2009-02-23
  • 打赏
  • 举报
回复
1、如果是标准函数库,可以到网上找到源码,比如glibc,最新版的下载地址:

http://ftp.gnu.org/gnu/glibc/glibc-2.7.tar.gz

2、在linux内核中,__init的定义如下(.\src\include\linux\init.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标识,用完了以后就把这部分内存释放掉,因为这部分内存仅

仅是开始的时候使用而已。这个系列的宏在内核中和驱动程序中非常常见。

linaxing 2009-02-23
  • 打赏
  • 举报
回复
这个不是库函数的问题。
关于__init你看一下kernel编程就明白了,它表明该函数仅在初始化期间使用。

23,121

社区成员

发帖
与我相关
我的任务
社区描述
Linux/Unix社区 应用程序开发区
社区管理员
  • 应用程序开发区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧