匿名管道 的 管道复制(dup)
来源:互联网 发布:能赚集分宝的软件 编辑:程序博客网 时间:2024/06/11 00:12
int dup(int oldfd);
返回值:
-1-----失败
其他---新的文件描述符
int dup2(int oldfd, int newfd);
返回值:
-1--------失败
其他-----返回newfd新的文件描述符
图解:
PS:
tty表示终端,0,1,2表示含义系统默认为下表:
分类文件--------------描述符------------文件号
标准输入------- STDIN_FILENO----------0
标准输出--------- STDOUT_FILENO-----1
标准出错信息---- STDERR_FILENO ----2
dup示例:
#include <stdio.h>#include <stdlib.h>#include <string.h>#include <unistd.h>int main(){int fd = dup(STDOUT_FILENO);fprintf(fdopen(fd,"w"),"%d printf:Hello dup\n",fd);}
dup2示例:
#include <stdio.h>#include <stdlib.h>#include <string.h>#include <unistd.h>#include <fcntl.h>#define FILE_MODE (S_IWUSR|S_IRUSR|S_IRGRP|S_IROTH)int main(){int save_fd = dup(STDOUT_FILENO);int fd = open("./test",O_CREAT|O_RDWR,FILE_MODE); if(-1 == dup2(fd,STDOUT_FILENO)){perror("dup2 error0");return 1;}close(fd);printf("%d printf:Hello dup\n",fd);fflush(stdout);// 一定要清除缓冲区,否则会输出到终端if(-1 == dup2(save_fd,STDOUT_FILENO)){perror("dup2 error");return 1;}close(save_fd);printf("%d printf:this is save\n",save_fd);}
0 0
- 匿名管道 的 管道复制(dup)
- IPC-管道(匿名管道)
- 匿名管道的使用
- dup重定向匿名管道父进程子进程的一些坑包含execvp调用ffmepg
- 匿名管道、命名管道
- 管道,匿名管道及其命名管道的解析
- 匿名管道 与 命名管道/FIFO管道 的特点
- 匿名管道
- 匿名管道
- 匿名管道
- 匿名管道
- 匿名管道
- 匿名管道
- 匿名管道
- 匿名管道
- 匿名管道
- 匿名管道
- 匿名管道
- 用java针对网站日志进行KPI处理
- 大学生活随笔
- CentOS7下安装MySQL5.7安装与配置(YUM)
- C++ Primer 第5版--练习11.4
- Kubernetes
- 匿名管道 的 管道复制(dup)
- IntelliJ Idea 常用快捷键
- 【剑指offer】第三题
- React Native之项目打包
- 了解Java Applet小程序
- 在Windows7下配置Apache2.4服务器及错误解决方案-通常每个套接字地址(协议/网络地址/端口)只允许使用一次
- Javascript是单线程的深入分析
- 纯java语言分析网站后台日志IP排序处理
- libsvm3.22——在matlab(32位和64位)中的安装