-
Notifications
You must be signed in to change notification settings - Fork 53
recvfrom
果冻虾仁 edited this page Feb 1, 2015
·
2 revisions
##函数原型
#include <sys/socket.h>
ssize_t recvfrom(int sockfd, void *buf, size_t len, int flags,
struct sockaddr *src_addr, socklen_t *addrlen);
##描述 recvfrom()的前面四个参数同recv(),对于简单的数据报C/S例子,flags字段总为0。
参数src_addr和addrlen类似accept()的最后两个参数:
在函数返回时,它们给出套接字的地址以告知是谁发送的数据报。如果对这一信息不感兴趣,可以指定成空指针。
##返回值
同recv(),表示实际读的字节数。失败的时候返回-1,并设置errno
Talk is cheap, show me the code!
C语言API包含部分
标准C的API、POSIX标准的系统编程API(一些Linux独有的系统API会单独注明)。
大部分头文件源码在/usr/include
目录下。
因为涉及到大量的POSIX编程。所以最好下载POSIX函数的man手册。
apt-get install manpages-posix
apt-get install manpages-posix-dev
默认安装了manpages-dev
,所以不装POSIX的man手册是可以查看绝大部分API的。
但是不装的话,有些API是不能看到的,比如posix_spawn
函数。
yum install man-pages.noarch
关于目录
左侧的目录并非以函数为索引依据,主要是以系统的man手册页面为索引依据。
比如exec里面包含6个函数、pipe里面包含pipe()和pipe2()两个函数,但是它们都是属于一个man页面中。