Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/sockets/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在哪里可以看到系统API的源代码,比如linux的写/读?_Linux_Sockets_Ubuntu_Tcp - Fatal编程技术网

在哪里可以看到系统API的源代码,比如linux的写/读?

在哪里可以看到系统API的源代码,比如linux的写/读?,linux,sockets,ubuntu,tcp,Linux,Sockets,Ubuntu,Tcp,我已经从下载了系统源代码,但是在包中找不到读/写函数的源代码。有人能告诉我在哪里可以得到这些套接字操作函数的代码吗 [我为什么要检查源代码] 我正在开发一个多线程linux应用程序,需要知道调用套接字操作函数(如write/read/sendmsg)从不同线程同时访问同一个TCP套接字是否安全。1)找出您想要查看源代码的库提供的函数 e、 g.“人读” 4) 下载源程序包并浏览代码 各种库中可能有许多“读取”函数。你可能想试试 man 7 socket man 7 tcp 或其他相关源。您可

我已经从下载了系统源代码,但是在包中找不到读/写函数的源代码。有人能告诉我在哪里可以得到这些套接字操作函数的代码吗

[我为什么要检查源代码]
我正在开发一个多线程linux应用程序,需要知道调用套接字操作函数(如write/read/sendmsg)从不同线程同时访问同一个TCP套接字是否安全。

1)找出您想要查看源代码的库提供的函数

e、 g.“人读”

4) 下载源程序包并浏览代码

各种库中可能有许多“读取”函数。你可能想试试

man 7 socket
man 7 tcp 

或其他相关源。

您可以在上的内核源代码中搜索函数和其他内容

但在搜索之前,您应该知道write/read/sendmsg是系统调用,它们的定义与通常的函数不同。 当您使用read()时,sys_read()实际上可以工作,并且它的定义也很混乱:

这是和


如果你想了解更多关于系统调用的信息,比如它们的定义,你可以阅读Linux内核开发的第5章。

这是@Deufefefeu的翻版,我在制作自己的线程之前也读过这篇文章,但我对它提供的anwser不满意,所以我决定亲自检查源代码:)LXR非常有用!~3QU~
pwadas@kehillah:~$ dpkg -S /usr/include/unistd.h 
libc6-dev: /usr/include/unistd.h
man 7 socket
man 7 tcp