#include #include #define N 32 int main(int argc, char **argv) { FILE *p[N]; int eofs[N]; int i, n, done; if (argc < 3) { fprintf(stderr,"bad arg\n"); exit(8); } n = argc - 1; for (i = 0; i < n; i++) { p[i] = fopen(argv[i+1], "r"); if (p[i] == NULL) { fprintf(stderr,"bad file: %s\n",argv[i+1]); exit(8); } eofs[i] = 0; } done = 0; while (done != n) { done = 0; for (i = 0; i < n; i++) { if (eofs[i] == 1) { done++; } else { if (rd_msg(p[i])) { done++; eofs[i] = 1; } } } } } int rd_msg(FILE *in) { int c; while ((c = fgetc(in)) != EOF) { putchar(c); if (c == '\n') return 0; } return -1; }