Tcp/Ip I/O函数

  • 用于创建文件描述符的函数,包括pipe、dup/dup2函数
  • 用于读写数据的函数,包括readv/writev、sendfile、mmap/munmap、splice和tee函数。

  • 用于控制I/O行为和属性的函数,包括fcntl函数。

1.Pipe函数

pipe函数用于创建一个管道

#include<unistd.h>
int pipe(int fd[2]);  //成功返回0 失败返回-1并设置 errno   fd[0]负责写入 fd[1]从管道读取数据  
             //如果想实现双i昂的数据传输 应该使用两个管道 默认read write都是堵塞的

2.socketpair函数

#include<sys/types.h>
#include<sys/socket.h>
int socketpair(int domain,int type,int protocol,int fd[2]);
//成功返回0 失败返回-1并设置 errno
  • socketpair前三个参数的含义与socket系统调用的三个参数相同     但domain只能使用UNIX本地域协议族AF_UNIX
  • socketpair创建的这对文件描述符都是既可读又可写的

3.dup函数和dup2函数  (复制文件述符file_descriptor

#include<unistd.h>
int dup(int file_descriptor); //dup函数创建一个新的文件描述符,该新文件描述符和原有文件描述符file_descriptor
指向相同的文件、管道或者网络连接。
int dup2(int file_descriptor_one,int file_descriptor_two); //dup2和dup类似,不过它将返回第一个不小于file_descriptor_two的整数值。
dup和dup2系统调用失败时返回-1并设置errno。
  • 把标准输入重定向到一个文件,或者把标准输出重定
  • 向到一个网络连接(比如CGI编程)

猜你喜欢

转载自www.cnblogs.com/jingchu/p/10016575.html