重定向文件内容到标准错误
#include <stdio.h>
void redirect_file_to_strerr(void);
int main(int argc, char const *argv[])
{
redirect_file_to_strerr();
return 0;
}
void redirect_file_to_strerr(void)
{
FILE *f;
f = fopen("redirect_file_to_strerr.txt", "w");
dup2(2, fileno(f));
fprintf(f, "%s\n", "hello world");
}
假设 f的文件描述符为10;
dup2(2, fileno(f))将把流向f的数据重定向到strerr,所以写入f的内容不会被保存在文件中,而是显示在了屏幕上(sterr默认流向屏幕),redirect_out_to_file.txt文件内容为空。
1 => screen
2 => screen10 => redirect_file_to_strerr.txt”
10 => 2