#include #include void main(int argc, char **argv) { int pfd[2]; char buf[8192]; int r; if (pipe(pfd) < 0) sysfatal("pipe: %r"); switch (fork()) { case -1: sysfatal("fork: %r"); case 0: dup(pfd[1], 0); dup(pfd[1], 1); execl("/bin/urlencode", "urlencode", nil); sysfatal("execl: %r"); default: r = read(0, buf, sizeof(buf)-1); write(pfd[0], buf, r); write(pfd[0], "", 0); close(pfd[1]); while ((r = read(pfd[0], buf, sizeof(buf)-1)) > 0) { buf[r] = '\0'; fprint(2, "%s\n", buf); } } }