套接字與FIFO
###套接字與FIFO
@【全雙工】套接字
特點:sv[0]與sv[1]可讀可寫
案列:客戶端服務器模型 http://www.jianshu.com/p/b7ab8400eccf
操作:
創建:int socketpair(int domain,int type,int protocl,int sv[2])
domain:套接口的域(AF_LOCAL/AF_UNIX)
type:套接口類型(SOCK_STREAM【數據流】、SOCK_DGRAM【數據報】)
protocol:協議(必須0)
sv:文件描述符的指針(s[0]與s[1]都可讀寫)
返回值:0(成功)、-1(出錯)
關閉:close(sv[0]);close(sv[1]);
@【半雙工】FIFO管道/命名管道
特點:可以是非親緣進程之間;讀寫必須同時執行,否則堵塞【默認】。
操作:
創建命名管道:int mkfifo(pathname,mode)【古老方式:int mknod(const char *filename,mode_t mode | S_IFIFO,(dev_t)0);】
pathname:文件路徑【文件必須不存在】
mode:模式
返回值:0(成功)、非零(失敗)
打開FIFO文件:int open(const char* path,int mode)
pathname:文件路徑
mode:模式【O_RDONLY(阻塞只讀)、O_RDONLY|O_NONBLOCK(非阻塞只讀)、O_WRONLY(阻塞只寫)、O_WRONLY|O_NONBLOCK(非阻塞只寫)】
返回值:-1(失敗)、其他(文件描述符)
讀寫:與文件操作相同
@【全雙工】套接字
特點:sv[0]與sv[1]可讀可寫
案列:客戶端服務器模型 http://www.jianshu.com/p/b7ab8400eccf
操作:
創建:int socketpair(int domain,int type,int protocl,int sv[2])
domain:套接口的域(AF_LOCAL/AF_UNIX)
type:套接口類型(SOCK_STREAM【數據流】、SOCK_DGRAM【數據報】)
protocol:協議(必須0)
sv:文件描述符的指針(s[0]與s[1]都可讀寫)
返回值:0(成功)、-1(出錯)
關閉:close(sv[0]);close(sv[1]);
@【半雙工】FIFO管道/命名管道
特點:可以是非親緣進程之間;讀寫必須同時執行,否則堵塞【默認】。
操作:
創建命名管道:int mkfifo(pathname,mode)【古老方式:int mknod(const char *filename,mode_t mode | S_IFIFO,(dev_t)0);】
pathname:文件路徑【文件必須不存在】
mode:模式
返回值:0(成功)、非零(失敗)
打開FIFO文件:int open(const char* path,int mode)
pathname:文件路徑
mode:模式【O_RDONLY(阻塞只讀)、O_RDONLY|O_NONBLOCK(非阻塞只讀)、O_WRONLY(阻塞只寫)、O_WRONLY|O_NONBLOCK(非阻塞只寫)】
返回值:-1(失敗)、其他(文件描述符)
讀寫:與文件操作相同
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.