linux中dup2函数,dup与dup2函数
依赖的头文件
#include
函数定义
int dup(int oldfd);
int dup2(int oldfd, int newfd);
函数作用
dup和dup2都可用来复制一个现存的文件描述符,使两个文件描述符指向同一个file结构体。
如果两个文件描述符指向同一个file结构体,file status flag和读写位置只保存一份在file结构体中,并且file结构体的引用计数是2。
如果两次open同一文件得到两个文件描述符,则每个描述符对应一个不同的file结构体,可以有不同的file status flag和读写位置。
实战
需求:在代码中执行2次printf("hello linux\n"),前一次输入到world文件中,后一次输入到屏幕上
#include
#include
#include
#include
#include
void file_redirect()
{
//先备份现场
int outfd = dup(1);
//先做重定向
int fd = open("world", o_wronly|o_creat,0666);
//标准输出到重定向fd到对应的文件
dup2(fd, 1);
printf("hello linux\n");
//需要来一次刷新
fflush(stdout);
//需要恢复1,重新到标准输出
dup2(outfd, 1);
printf("hello linux\n");
}
int main(int argc, char* argv[])
{
file_redirect();
return 0;
}
linux中dup2函数,dup与dup2函数相关推荐
- 函数dup与dup2
博客搬家,原地址:https://langzi989.github.io/2017/05/21/函数dup/ 函数原型 #include <unistd.h>int dup(int fd) ...
- Linux绘图函数与驱动,Linux中与驱动相关的ioctl函数
一: ioctl函数的作用 ioctl用于向设备发控制和配置命令 ,有些命令也需要读写一些数据,但这些数据是不能用read/write读写的,称为Out-of-band数据.也就是说,read/ ...
- 函数dup和dup2
函数原型: #include<unistd.h> int dup(int oldfd);返回值:若成功,返回新的文件描述符:若出错,返回-1 参数: oldfd:要复制的文件描述符 dup ...
- linux中i2c的ioctl,write,read函数的使用
一.ioctl函数的使用: 原型:struct ioctl(struct file *file,unsigned int cmd,unsigned long arg); cmd有I2C_SLAVE,I ...
- linux中C语言获取高精度时钟gettimeofday函数
原文地址::https://blog.csdn.net/balingybj/article/details/48293817 相关文章 1.gettimeofday()函数的使用方法----https ...
- linux中strlen的用法,实现strlen()函数,strcmp()函数 const知识点
实现strlen()函数,strcmp()函数 const知识点 发布时间:2020-08-03 05:49:13 来源:51CTO 阅读:576 作者:汇天下豪杰 1.strlen()函数的实现:# ...
- 摸了好久,终于把linux中i2c的ioctl,write,read函数的使用弄懂了
ioctl函数的使用: 原型:struct ioctl(struct file *file,unsigned int cmd,unsigned long arg); cmd有I2C_SLAVE,I2 ...
- linux 创建进程 execl,linux中进程的vfork()和execl()函数
看我下面的程序,还有问题可以baidu hi我 #include #include #include #include int main(int argc, const char *argv[]) { ...
- linux存储--dup和dup2函数解析(十八)
1.文件描述符在内核中数据结构 在具体说dup/dup2之前,我认为有必要先了解一下文件描述符在内核中的形态.一个进程在此存在期间,会有一些文件被打开,从而会返回一些文件描述符,从shell中运行一个 ...
最新文章
- BZOJ1702: [Usaco2007 Mar]Gold Balanced Lineup 平衡的队列
- 一起学微软Power BI系列-使用技巧(3)Power BI安卓手机版安装与体验
- 谈谈AI的ToB市场,我的新书《B端产品经理修炼手册》正式出版
- Linux运行hadoop命令,将hadoop程序打成jar包,在linux下以命令行方式运行(例如单词计算程序)...
- 微软如何利用机器学习改进Win 10更新体验
- Flutter进阶—实现动画效果(二)
- Yahoo!用户体验与设计前副总裁推荐——《设计模式》
- 不用写代码,谷歌教你如何用2个小时做出只属于你的游戏。
- mysql 查询时间戳(TIMESTAMP)转成常用可读时间格式
- mysql 5.7.20免安装_Windows下MySQL 5.7.20 免安装版配置
- 绘制logo软件-AI(illustrator)
- 单耳蓝牙耳机怎么连接_蓝牙耳机怎么切换单耳
- Java从服务端下载Excel模板文件
- 更新至OSX 10.10后MBA外接网卡无法使用的解决
- uni-app上传图片base64
- 小伙伴们,给大家发红包喽!
- iOS 引导图的聚光灯效果代码实现
- Docker 镜像管理,显示本地镜像,查找镜像,删除镜像,镜像拉取,查看镜像的具体信息,镜像的导入和导出,将配置后的镜像commit成自己的镜像,docker history,等
- eclipse jee mars linux,【创建maven-web项目-eclipse-jee-mars-2-win32-x86_64-jdk1.8】
- 音乐播放器Android开发的目的,基于Android的手机音乐播放器的设计与开发
热门文章
- python数据分析综合案列--星巴克门店数据分析及可视化
- bash与csh下获取系统命令执行结果
- Arduino教程 模拟输入输出以及电机和舵机控制
- Mybatis奇淫技巧
- 基于CNN的乳腺肿瘤识别
- [2019.9 EOJ Monthly] B.定向越野 (贪心+模拟
- 星球作业(第四期)话题:关于startActivityForResult
- Python算法性能分析-时间复杂度
- “双接口(dual)”的接口模式
- 计算机英语一级考试试题,全国计算机一级考试试题题库及答案