// producer #include #include FILE *i_init(char *fname, int m = 0); int i_send(FILE *fp, char *buf); int i_rcv(FILE *fp, char *buf); main(int argc, char *argv[]) { int i, stat, n; char buf[100], rbuf[100]; FILE *fp = i_init("b.ipc", 1); if (fp == NULL) { printf("can't open b.ipc\n"); exit(1); } n = argc > 1 ? atoi(argv[1]) : 10; system("cons b.ipc &"); for (i = 1; i <= n; i++) { sprintf(buf, "message %d", i); fprintf(stderr, "prod sending '%s'\n", buf); stat = i_send(fp, buf); if (stat == -1) { printf("prod send error %d\n", i); exit(1); } stat = i_rcv(fp, rbuf); fprintf(stderr, "prod rcvd '%s'\n", rbuf); if (stat == -1) { printf("prod rcv error %d\n", i); exit(1); } } i_send(fp, "done"); }