首页 > 代码库 > Linux_C dup()
Linux_C dup()
1 /* 2 * stdinredir2.c 3 * shows two more methods for redirecting standard input 4 * use #define to set one or the other 5 */ 6 #include <stdio.h> 7 #include <fcntl.h> 8 /*#define CLOSE_DUP /*open, close, dup, close */ 9 /*#define USE_DUP2 /*opne, dup2, close */10 int main(void) {11 int fd, newfd;12 char line[100];13 //read and print lines14 fgets(line, 100, stdin);15 printf("line: %s", line);16 17 fd=open("/home/wiz/wizcode/psh1.c", O_RDONLY); /* open the disk file */18 19 #ifdef CLOSE_DUP20 close(0);21 newfd=dup(fd); /*copy open fd to 0*/22 #else23 newfd=dup2(fd,0); /*close 0, dup fd to 0*/24 #endif25 if(newfd!=0){26 fprintf(stderr, "Could not duplicate fd to 0\n");27 exit(1);28 }29 close(fd);30 fgets(line, 100, stdin); printf("%s", line);31 fgets(line, 100, stdin); printf("%s", line);32 fgets(line, 100, stdin); printf("%s", line);33 return 0;34 }
Linux_C dup()
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。