news 2026/6/10 19:37:36

I/O重定向函数dup2

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
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; }
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/6/10 11:27:49

凝血途径启动子CD142

组织因子&#xff08;Tissue factor&#xff0c;CD142&#xff09;又称为凝血因子III&#xff0c;F3或CD142&#xff0c;通过与循环中的因子VII或VIIa形成复合物来启动血液凝固过程。CD142/VIIa复合物通过特定的有限蛋白水解作用激活因子IX或X。CD142在正常的止血过程中发挥着作…

作者头像 李华
网站建设 2026/6/10 11:12:23

直播带货提词器推荐

直播带货时常用的提词器工具可以帮助主播顺畅介绍产品、避免忘词&#xff0c;提高专业度。芦笋提词器是适合直播带货的提词器&#xff0c;以下时详细的使用步骤。 一.安装与使用步骤 1. 下载与安装 访问芦笋提词器官网&#xff1a;下载安装芦笋提词器&#xff08;官网&#…

作者头像 李华
网站建设 2026/6/10 12:17:45

计算机毕设java工程建筑管理系统 基于Java的建筑工程信息管理系统设计与实现 Java技术驱动的工程建筑管理平台开发

计算机毕设java工程建筑管理系统044mo9&#xff08;配套有源码 程序 mysql数据库 论文&#xff09; 本套源码可以在文本联xi,先看具体系统功能演示视频领取&#xff0c;可分享源码参考。 随着信息技术的飞速发展&#xff0c;建筑工程领域的管理方式也在不断革新。传统的工程建…

作者头像 李华
网站建设 2026/6/10 11:11:44

为什么没人走后门当程序员?

最近刷 X 乎时看到这样一个耐人寻味的的讨论话题&#xff0c;浏览量超 170w&#xff0c;参与讨论的同学也好多。 问题描述是这样的&#xff1a; “为什么没人走后门当程序员&#xff1f;” 我认真浏览了一圈&#xff0c;心里五味杂陈。 在许多人眼中&#xff0c;程序员是一个…

作者头像 李华
网站建设 2026/6/10 11:14:46

亲测好用2026 TOP9 AI论文工具:专科生毕业论文神器测评

亲测好用2026 TOP9 AI论文工具&#xff1a;专科生毕业论文神器测评 2026年专科生论文写作工具测评&#xff1a;为何需要这份榜单&#xff1f; 随着人工智能技术的不断进步&#xff0c;AI论文工具已经成为高校学生&#xff0c;尤其是专科生群体中不可或缺的辅助工具。然而&#…

作者头像 李华