重定向文件流

FILE *freopen()

函数将文件关联到指定的流,一般用于改变stdinstdoutstderr相关联的文件。


保存man文档到文件中:

int main() {
// 存储原来关联的文件
int fd = stdout->_fileno;
char *fn = ttyname(fd);

freopen("../words.txt", "w", stdout);
int n = system("man ls");

// 用原来的文件还原
freopen(fn, "w", stdout);

if (n == 0) {
char docs[1024];
FILE *f = fopen("../words.txt", "r");
int count = fread(docs, sizeof(char), 1024, f);
docs[count] = '\0';
printf("%s", docs);
fclose(f);
}
}

 

 

 

展开阅读全文