标准输入:0 fileno(stdin) STDIN_FILENO
标准输出:1 fileno(stdout) STDOUT_FILENO
标准错误:2 fileno(stderr) STDERR_FILENO
stdxxx为FILE *,需要转换一下
STDXXX_FILENO定义在unistd.h文件中
dup()
复制标准输出到fd
fd = dup(STDOUT_FILENO)
向fd写,等于向标准输出写,等于打印
write(fd,BUFFER,BUF_SIZE);
dup2()
重定向标准输出到fd,先关闭fd,再fd = STDOUT_FILENO,但fd的值还是3(调用成功时,fd与ret值相等)
ret = dup2(STDOUT_FILENO,fd);
向fd写,等于向标准输出写,等于打印
write(fd,BUFFER,BUF_SIZE);
int fd = open("xxx.txt",O_WDONLY);
flag = fcntl(fd, F_GETFL, 0);
flag |= O_APPEND;
fcntl(fd, F_SETFL, flag);