当前位置: 首页 > news >正文

I/O重定向函数dup2

从标准输入拷贝一个文本文件到标准输出,使用dup2函数重定向到把一个磁盘文本文件拷贝到另一个磁盘文件的结尾处。

#include <sys/types.h> #include <sys/stat.h> #include <fcntl.h> #include <unistd.h> #include <stdio.h> #include <errno.h> #include <stdlib.h> #define MAXBUF 20 #define DEF_MODE S_IRUSR|S_IWUSR|S_IRGRP|S_IWGRP|S_IROTH|S_IWOTH #define DEF_UMASK S_IWGRP|S_IWOTH ssize_t rio_readn(int fd, void *usrbuf, size_t n); ssize_t rio_writen(int fd, void *usrbuf, size_t n); int main(int argc, char **argv) { int n,fd1,fd2; char buf[MAXBUF]; fd1=open("hello.txt",O_RDONLY,0); umask(DEF_UMASK); fd2 = open("bar.txt", O_WRONLY|O_APPEND|O_CREAT, DEF_MODE); dup2(fd1,0); dup2(fd2,1); while((n=rio_readn(STDIN_FILENO,buf,MAXBUF))!= 0) rio_writen(STDOUT_FILENO,buf,n); exit(0); } ssize_t rio_readn(int fd, void *usrbuf, size_t n) { size_t nleft = n; ssize_t nread; char *bufp = usrbuf; while (nleft > 0) { if ((nread = read(fd, bufp, nleft)) < 0) { if (errno == EINTR) /* Interrupted by sig handler return */ nread = 0; /* and call read() again */ else return -1; /* errno set by read() */ } else if (nread == 0) break; /* EOF */ nleft -= nread; bufp += nread; } return (n - nleft); /* Return >= 0 */ } ssize_t rio_writen(int fd, void *usrbuf, size_t n) { size_t nleft = n; ssize_t nwritten; char *bufp = usrbuf; while (nleft > 0){ if ((nwritten = write(fd, bufp, nleft)) <= 0){ if (errno == EINTR) /* Interrupted by sig handler return */ nwritten = 0; /* and call write() again */ else return -1; /* errno set by write() */ } nleft -= nwritten; bufp += nwritten; } return n; }
http://www.jsqmd.com/news/309170/

相关文章:

  • 【风电光伏功率预测】别再只盯“准确率”了:把不确定性变成收益,分布式预测怎么决定报量“偏保守”还是“偏进攻”?
  • 【高精度气象】航运避台别只看路径:风圈扩张 + 涌浪滞后,才是“绕不绕、绕多远”的真答案
  • 【芯片寿命的隐形裁判:深入解析TDDB失效机制与防护策略】
  • 直播带货提词器推荐
  • JBoltAI框架:Java大模型开发的架构、方案与范例
  • 05.this的绑定规则、优先级、和相关面试题
  • 2026年文旅民宿优质供应商推荐榜:四川太空舱民宿、四川木屋民宿、四川民宿规划设计、四川集装箱民宿、太空舱木屋集装箱民宿选择指南
  • 必看!2026年重庆钢绞线工厂排名与前五大高品质1*7钢绞线推荐
  • C++精灵库简介(小朋友版)
  • 2026年二次元测量仪厂家权威榜单揭晓,推荐5款最佳选择
  • Qt6 QML Flickable控件详解
  • CE、CCC、COC 差异与合规指南
  • VR双人飞机-双人组队“上天”!把航天科普玩出新鲜感
  • 山东华政优途:【常识】“腊八节”考点汇总
  • 生活-食品-豆制品: 豆腐干 的 生产工艺
  • Educational Codeforces Round 70 部分题解
  • 2026 珠宝店现代法式家具 TOP5 推荐榜单(整案落地|海外项目经验)
  • 2026 邮件系统厂家推荐:AI 赋能与全栈合规的 5 大优选
  • 基于Chrome140的Bing自动化(关键词浏览)——需求分析环境搭建(一)
  • 金蝶的云转型赌局,终于赢在了最后一秒?
  • 用 Dify 工作流 + Coze 插件 Doubao-Seedream-4.0 做一个完整的工作流
  • 2026电化学反应器厂家推荐,电化学研发的技术标杆与可靠伙伴
  • 催化剂评价装备厂家有哪些?微型固定床哪家好?2026用实力给出答案
  • 自助建站哪个好?0代码自助建站平台评测推荐2026
  • 精准输送的技术标杆,2026高压平流泵厂家推荐盘点分析
  • 2026优选微流控芯片厂家/微通道反应器厂家推荐/微化工设备厂家推荐盘点
  • 前后端分离日常办公用品直售推荐强大的系统系统|SpringBoot+Vue+MyBatis+MySQL完整源码+部署教程
  • 什么白酒好喝又靠谱?权威认证酒款 + 选酒秘诀
  • 追剧纯净版 + OF 动漫:无广刷剧追番的清爽选择
  • AI大模型应用开发- 入门基础数学