setsockopt函数
原型: int setsockopt( int socket, int level, int option_name,
const void *option_value, size_t option_len);
第一个参数socket是套接字描述符。
第二个参数level是被设置的选项的级别,如果想要在套接字级别上设置选项,就必须把level设置为 SOL_SOCKET。
第三个参数option_name指定准备设置的选项,option_name可以有哪些取值,这取决于level,以linux 2.6内核为例(在不同的平台上,这种关系可能会有不同),
setsockopt函数是网络编程的重要函数,套接字是网络编程构架最基础最重要的
原型: int setsockopt( int socket, int level, int option_name,
const void *option_value, size_t option_len);
第一个参数socket是套接字描述符。
第二个参数level是被设置的选项的级别,如果想要在套接字级别上设置选项,就必须把level设置为 SOL_SOCKET。
第三个参数option_name指定准备设置的选项,option_name可以有哪些取值,这取决于level,以linux 2.6内核为例(在不同的平台上,这种关系可能会有不同),
setsockopt函数是网络编程的重要函数,套接字是网络编程构架最基础最重要的
#粤嵌星计划,粤嵌我来了##Week 3-1 有名管道与无名管道
一、无名/匿名管道通信用pipe(int pipe_fd[2])函数申请,调用pipe函数,在成功的情况下便可以在linux的内部诞生一个无名管道主体(我们在软件层是看不到的),并且返回管道的读写两个端口的文件描述符,放进去pipe_fd这个参数当中。
二、有名管道用mkfifo(const char *pathname, mode_t mode)申请,创建一个有名管道文件,注意一定是linux的兼容文件系统才能诞生的文件类型;
pathname:创建的管道文件的路径+名字
mode:文件权限
一、无名/匿名管道通信用pipe(int pipe_fd[2])函数申请,调用pipe函数,在成功的情况下便可以在linux的内部诞生一个无名管道主体(我们在软件层是看不到的),并且返回管道的读写两个端口的文件描述符,放进去pipe_fd这个参数当中。
二、有名管道用mkfifo(const char *pathname, mode_t mode)申请,创建一个有名管道文件,注意一定是linux的兼容文件系统才能诞生的文件类型;
pathname:创建的管道文件的路径+名字
mode:文件权限
#粤嵌星计划#
Week3-1
1,管道通信
匿名管道/无名管道
1,它只能作用于亲缘进程(匿名管道的创建他使用pipe创建,诞生出两个操作管道读写端的文件描述符,只有创建子进程的时候才会被继承过去,无法通过别的方式打开同一个管道)
2,半双工通信(在读的时候不能写入,在写入的时候不能读取)
3,操作无原子性
4,无法用lseek定位操作位置
相关函数:
#include
int pipe(int pipefd[2]);
函数功能:
随机创建一个匿名管道,并且返回管道的两个通信文件描述符给传入的数组
Pipefd:这是一个两个int型元素的数组,管道创建成功后会将读端文件描述符放到第0个元素中,将写端文件描述符放到第1个元素中
返回值:
成功返回0,失败返回-1
2,有名管道文件
特点:
1,有名字
2,这是一个特殊功能文件
3,可以使任意的进程进行通信
4,操作具备原子性
5,全双工读写
6,不能lseek进行定位
7,他的操作方式跟普通文件一致
#include
#include
int mkfifo(const char *pathname, mode_t mode);
函数功能:
用来创建一个有名管道文件
函数参数:
pathname:创建的名字
mode:创建的权限(跟open函数去创建文件的方式是一致的)
返回值:
成功返回0,失败返回-1
应用场景:
1,适用于进程间通信(小数据通信场景)
2,灵活操作:
因为管道通信操作有原子性,可以实现普通文件的操作原子性
Week3-1
1,管道通信
匿名管道/无名管道
1,它只能作用于亲缘进程(匿名管道的创建他使用pipe创建,诞生出两个操作管道读写端的文件描述符,只有创建子进程的时候才会被继承过去,无法通过别的方式打开同一个管道)
2,半双工通信(在读的时候不能写入,在写入的时候不能读取)
3,操作无原子性
4,无法用lseek定位操作位置
相关函数:
#include
int pipe(int pipefd[2]);
函数功能:
随机创建一个匿名管道,并且返回管道的两个通信文件描述符给传入的数组
Pipefd:这是一个两个int型元素的数组,管道创建成功后会将读端文件描述符放到第0个元素中,将写端文件描述符放到第1个元素中
返回值:
成功返回0,失败返回-1
2,有名管道文件
特点:
1,有名字
2,这是一个特殊功能文件
3,可以使任意的进程进行通信
4,操作具备原子性
5,全双工读写
6,不能lseek进行定位
7,他的操作方式跟普通文件一致
#include
#include
int mkfifo(const char *pathname, mode_t mode);
函数功能:
用来创建一个有名管道文件
函数参数:
pathname:创建的名字
mode:创建的权限(跟open函数去创建文件的方式是一致的)
返回值:
成功返回0,失败返回-1
应用场景:
1,适用于进程间通信(小数据通信场景)
2,灵活操作:
因为管道通信操作有原子性,可以实现普通文件的操作原子性
✋热门推荐