아래의 코드는 stdout을 fname 파일 &으로 리디렉션하여 원래 stdout으로 다시 리디렉션합니다. 그것은 나를 위해 잘 작동합니다. 그러나 실제로 작동하는 방식을 이해할 수 없습니다. 누군가 내가 이해할 수있게 도와 준다면 나는 그것을 이해할 것이다.이 stdout 리디렉션은 어떻게 작동합니까?
printf("\n This is console");
fflush(stdout);
fgetpos(stdout, &pos);
fd = dup(fileno(stdout));
freopen(fname, "a+", stdout);
printf("inside file op");
fflush(stdout);
dup2(fd,fileno(stdout));
close(fd);
clearerr(stdout);
fsetpos(stdout, &pos);
printf("\nBack to Console");
그래, 그걸 복사해라. 명심하십시오. 고마워요 :) – vindyz
위의 신들의 신들, 왜 누구가하고 싶습니까? (stdout에 쓰는 것을 주장하는 소스가없는 라이브러리에 대한 절망적 인 최후의 해결 방법 인 것 말고도). –
누군가 다른 로그 메시지를 다른 파일로 리디렉션하여 디버깅 목적으로 사용하려면 매우 편리합니다. – vindyz