int dup2(int fd):复制(返回)文件句柄fd
int dup2(int fd1, int fd2):复制句柄fd1到fd2上,返回句柄fd2
int main(void)
{
int fd, save_fd;
char msg[] = "This is a test\n";
fd = open("somefile", O_RDWR|O_CREAT, S_IRUSR|S_IWUSR);
if(fd<0) {
perror("open");
exit(1);
}
save_fd = dup(STDOUT_FILENO);
dup2(fd, STDOUT_FILENO);
close(fd);
write(STDOUT_FILENO, msg, strlen(msg));
dup2(save_fd, STDOUT_FILENO);
write(STDOUT_FILENO, msg, strlen(msg));
close(save_fd);
return 0;
}


本文介绍如何使用C语言中的dup和dup2函数来临时改变标准输出,从而实现代码片段的重复执行,同时保持原始输出不变。
1359

被折叠的 条评论
为什么被折叠?



