我已经从这里下载了系统源代码,但是我找不到来自软件包的读/写function的源代码。 有谁能告诉我在哪里可以得到这些套接字操作函数的代码?
[为什么我要检查源代码]
我正在开发一个multithreading的linux应用程序,并且需要知道,如果调用像write / read / sendmsg这样的socket操作函数来同时访问来自不同线程的同一个TCP套接字是安全的。
accept4和accept之间有什么区别
无法绑定到多播地址(Windows)
Python 3.2.3:套接字需要更长的时间比它应该?
如何模拟客户端和服务器之间的套接字断开(在Windows上)?
将Java Socket绑定到每个环回地址
但在你搜索之前,你应该知道write / read / sendmsg是系统调用,它们的定义不像通常的函数。 当你使用read()时,sys_read()实际上起作用了,它自己的定义也是困惑的: 在这里
这里是write()和sendmsg() 。
如果您想了解更多关于系统调用的信息,例如定义,您可以阅读Linux coreel Development的第5章。
1)找出哪个库提供了你想要查看的函数的来源
例如“人读”
NAME read - read from a file descriptor SYnopSIS #include <unistd.h> ssize_t read(int fd,void *buf,size_t count);
2)找到头文件,例如“/usr/include/unistd.h”
3)找出哪个软件包提供这个文件,例如Debian / Ubuntu
pwadas@kehillah:~$ dpkg -S /usr/include/unistd.h libc6-dev: /usr/include/unistd.h
4)下载源码包和浏览代码
可能有许多来自不同图书馆的“阅读”功能。 你可能想尝试
man 7 socket man 7 tcp
或其他相关来源。