linux函数源码
㈠ linux中C语言的一个函数的源代码:socket 编程中的 recv() 函数。
1、recv是socket编程中最常用的函数之一,在阻塞状态的recv有时候会返回不同的值,而对于错误值也有相应的错误码,分别对应不同的状态。
2、recv函数只是在用户空间定义的。内核空间有与之对应的函数,也就是说,执行recv函数就会调用到内核中与它对应的函数,实际起作用的就是内核里的这个函数。至于内核里调用的是那个函数,内核里的调用关系复杂的很,除非对内核非常了解的,才会找到到底是怎么调用的,他也是只是找到怎么调用的。
㈡ 小技巧之查看Linux系统函数头文件
分享一个小技巧。
我们在写Linux应用程序时,有时候记不清某个系统函数的头文件,往往要么网络,要么查源码,这样做都不方便,费时费力。
其实,可以用一个命令搞定:man。
比如,我要查sleep函数的头文件,在终端下敲命令: man sleep ,输出信息:
并没有发现头文件!但是,请看红框里的内容,意思是当前显示的只是sleep手册的第1页,还有第3页可以参考,继续输命令 man 3 sleep ,输出信息:
看红框中的内容,是不就看到sleep函数的头文件及函数原型定义了!
查看read函数头文件,同样的,输入 man read ,直接可以查到:
是不是很方便啊!!!
㈢ 如何查看linux命令源代码和函数源代码
1. 以搜索ls命令源码为例,先搜索命令所在包,命令如下:
lpj@lpj-linux:~$ which ls
/bin/ls
2. 用命令搜索该软件所在包,代码如下:
lpj@lpj-linux:~$ dpkg -S /bin/ls
coreutils: /bin/ls
3. 从上一步中可以知道ls命令的实现在包coreutils中,用apt安装(说安装有些歧义,主要是区分apt-get -d)该包的源代码然后解压,代码如下:
sudo apt-get source coreutils
cd /usr/src/coreutils-XXX #XXX表示版本号
sudo tar zxvf coreutils-XXX.tar.gz
或者只下载源码,然后手动打补丁再解压,代码如下:
sudo apt-get -d source coreutils
cd /usr/src
tar zxvf coreutils-XXX.tar.gz
gzip -d coreutils-XXX.diff.gz #这一步会生成coreutils-XXX.diff文件
patch -p0 < coreutils-XXX.diff
cd coreutils-XXX
tar zxvf coreutils-XXX.tar.gz
OK,这几步执行完后,就可以进入/usr/src/coreutils-XXX/coreutils-XXX/src中查看各命令对应的源代码了
㈣ Linux进程转换状态函数源代码怎样获取
可以使用google代码搜索,http://code.google.com/intl/zh-CN/
帮你找了一下下,
http://www.google.cn/codesearch/p?hl=zh-CN#7_68JW9_sJ8/linux/kernel/fork.c&q=sys_exit()
进去找就有了
㈤ linux下怎么查看c函数库的源代码
头文件在/usr/include/sys/time.h
如果要看定义,下载glibc的源代码。
㈥ 怎么在linux中查看库函数源代码
linux中查看库函数源代码,需要自己手动下载一个gnu libc源代码库。然后在里面查,可以使用vim建立个ctags,然后及时定位到相应的函数即可。