当前位置: 技术问答>linux和unix
请问,pipe()这个管道建立函数在哪里实现的?
来源: 互联网 发布时间:2016-01-03
本文导语: 进程间通信的方法,可以通过无名管道来实现。 我很奇怪管道的实现,我以想去找它的函数实现源码,但找不到。 书上说是在unistd.h中定义,我找到__NR_pipe, 然后再在entry.S的sys_call_table里面找,找到一行,说明是系...
进程间通信的方法,可以通过无名管道来实现。
我很奇怪管道的实现,我以想去找它的函数实现源码,但找不到。
书上说是在unistd.h中定义,我找到__NR_pipe,
然后再在entry.S的sys_call_table里面找,找到一行,说明是系统调用。
最后在sys.c里面找,却找不到这个系统调用的实现。
但是这个pipe的系统调用在哪里实现的呢?????
我发现在sys_call_table里面很多系统调用都不在sys.c里面实现,请问他们的实现函数在哪里???
我很奇怪管道的实现,我以想去找它的函数实现源码,但找不到。
书上说是在unistd.h中定义,我找到__NR_pipe,
然后再在entry.S的sys_call_table里面找,找到一行,说明是系统调用。
最后在sys.c里面找,却找不到这个系统调用的实现。
但是这个pipe的系统调用在哪里实现的呢?????
我发现在sys_call_table里面很多系统调用都不在sys.c里面实现,请问他们的实现函数在哪里???
|
顺序: sys_call_table --> arch/i386/kernel/sys_i386.c中的sys_pipe() --> fs/pipe.c中的do_pipe()
如果需要了解细节的话可以自己看看代码或者阅读一下 情景分析 的相关内容。
如果需要了解细节的话可以自己看看代码或者阅读一下 情景分析 的相关内容。
|
很多system call是在.S汇编文件中实现的。