#include #include #include #include int main(int argc, char *argv[]) { FILE *fin, *fout; char buffer[PIPE_BUF]; int n; fprintf(stdout, "BUF: %d\n", (int) PIPE_BUF); if(argc < 3) { fprintf(stderr, "Usage: %s cmd cmd\n", argv[0]); exit(1); } fin=popen(argv[1], "r"); fout=popen(argv[2], "w"); // while((n=read(fileno(fin), buffer, PIPE_BUF)) > 0) // { // perror("read"); // write(fileno(fout), buffer, n); // } n=read(fileno(fin), buffer, BUFSIZ); perror("read"); fprintf(stdout, "%d\n", n); write(fileno(fout), buffer, n); perror("write"); pclose(fin); pclose(fout); exit(0); }