#include <unistd.h>
int main(void) {
// duplicate stdout
int duplicate = dup(1);
unsigned counter = 0;
for (; counter < 10; ++counter) {
if (counter % 2 == 0) {
// redirect IO on FD duplicate to stderr
dup2(2, duplicate);
} else {
// redirect it back to stdout
dup2(1, duplicate);
}
write (duplicate, "A ", 2);
write (1, "B\n", 2);
}
close (duplicate);
return 0;
}
I2luY2x1ZGUgPHVuaXN0ZC5oPgoKaW50IG1haW4odm9pZCkgewogIC8vIGR1cGxpY2F0ZSBzdGRvdXQKICBpbnQgZHVwbGljYXRlID0gZHVwKDEpOwogIHVuc2lnbmVkIGNvdW50ZXIgPSAwOwogIGZvciAoOyBjb3VudGVyIDwgMTA7ICsrY291bnRlcikgewogICAgaWYgKGNvdW50ZXIgJSAyID09IDApIHsKICAgICAgLy8gcmVkaXJlY3QgSU8gb24gRkQgZHVwbGljYXRlIHRvIHN0ZGVycgogICAgICBkdXAyKDIsIGR1cGxpY2F0ZSk7CiAgICB9IGVsc2UgewogICAgICAvLyByZWRpcmVjdCBpdCBiYWNrIHRvIHN0ZG91dAogICAgICBkdXAyKDEsIGR1cGxpY2F0ZSk7CiAgICB9CiAgICB3cml0ZSAoZHVwbGljYXRlLCAiQSAiLCAyKTsKICAgIHdyaXRlICgxLCAiQlxuIiwgMik7CiAgfQogIGNsb3NlIChkdXBsaWNhdGUpOwogIHJldHVybiAwOwp9Cg==