最近在用dup/dup2做IO重定向的时候,由于缓冲区的问题出现了一次异步IO,导致无法正常输出正确的结果。
先贴出代码:
/*
* 从文件里面读出1000个随机数,进行排序,再写到另一个文件中(使用dup/dup2)
*
*/
#include <unistd.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
typedef char STR[32];
void quick(int *a, int i, int j);
int main(void)
{
int fd, fd2;
int save_fd, save_fd2;
int i;
if ((fd = open("data.txt", O_RDONLY)) <