
/* Code covered under 3-Clause BSD License - see LICENSE file for details */

#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>

#include "conf.h"

int
main(argc, argv)
	int	argc;
	char	*argv[];
{
	char buf[MAXBUF];
	int fd[2], fd2[2], msgsize;
	register int i, iter;

	if (argc < 3) {
		printf("usage: %s iterations message-size\n", argv[0]);
		exit(1);
	}

	argc--, argv++;
	iter = atoi(*argv);
	argc--, argv++;
	msgsize = atoi(*argv);

	if (msgsize > sizeof(buf) || msgsize <= 0) {
		printf("%s: bad message size.\n", *argv);
		exit(2);
	}

	if (pipe(fd) < 0) {
		perror("pipe");
		exit(3);
	}

	if (pipe(fd2) < 0) {
		perror("pipe");
		exit(3);
	}

	if (fork() == 0)
		for (i = 0; i < iter; i++) {
			read(fd[0], buf, msgsize);
			write(fd2[1], buf, msgsize);
		}
	else
		for (i = 0; i < iter; i++) {
			write(fd[1], buf, msgsize);
			read(fd2[0], buf, msgsize);
		}

	return 0;
}




