重定向

当时看翁凯老师的 C 语言课程,用到了 >。懵逼状态,这几天在看 Linux 系统编程和鸟哥的私房菜,逐渐明白点了。

这个重定向呢……其实就是本来要输出到一个文件(从一个文件获取输入)后来被重定向到别的地方了。上图

重定向

dup2 系统调用重定向

1
2
3
SYNOPSIS
#include <unistd.h>
int dup2(int oldfd, int newfd);

对比上图,应该这样调用:dup2(3, 1),这样原本要输出到屏幕的东西就输出到 myfile 文件中了。

栗子

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#include <stdio.h>
#include <unistd.h>
#include <fcntl.h>
#include <stdlib.h>

int main(void) {
int fd = open("log", O_CREAT | O_RDWR);
if (fd < 0) {
perror("open error");
exit(-1);
}
dup2(fd, 1);
printf("hahahahaha\n");

close(fd);

return 0;
}

dup2Test.c


文章作者: ahoj
文章链接: https://ahoj.cc/2019/06/重定向/
版权声明: 本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 ahoj 的小本本