// Nyan cats
#include <unistd.h>
int main() {
int back[2];
int forth[2];
pipe(back);
pipe(forth);
if(fork() == 0) {
dup2(back[0], 0);
dup2(forth[1], 1);
} else {
write(back[1], "nyan", 5);
dup2(forth[0], 0);
dup2(back[1], 1);
}
close(back[0]); close(back[1]);
close(forth[0]); close(forth[1]);
execlp("cat", "cat", 0);
}
Ly8gTnlhbiBjYXRzCiNpbmNsdWRlIDx1bmlzdGQuaD4KCmludCBtYWluKCkgewogICAgaW50IGJhY2tbMl07CiAgICBpbnQgZm9ydGhbMl07CiAgICBwaXBlKGJhY2spOwogICAgcGlwZShmb3J0aCk7CiAgICBpZihmb3JrKCkgPT0gMCkgewogICAgICAgIGR1cDIoYmFja1swXSwgMCk7CiAgICAgICAgZHVwMihmb3J0aFsxXSwgMSk7CiAgICB9IGVsc2UgewogICAgICAgIHdyaXRlKGJhY2tbMV0sICJueWFuIiwgNSk7CiAgICAgICAgZHVwMihmb3J0aFswXSwgMCk7CiAgICAgICAgZHVwMihiYWNrWzFdLCAxKTsKICAgIH0KICAgIGNsb3NlKGJhY2tbMF0pOyBjbG9zZShiYWNrWzFdKTsKICAgIGNsb3NlKGZvcnRoWzBdKTsgY2xvc2UoZm9ydGhbMV0pOwogICAgZXhlY2xwKCJjYXQiLCAiY2F0IiwgMCk7Cn0K