Commit | Line | Data |
---|---|---|
3c1f50a7 C |
1 | /* |
2 | * IPC benchmark, | |
3 | * write to self using pipes. | |
4 | */ | |
5 | ||
6 | main(argc, argv) | |
7 | char *argv[]; | |
8 | { | |
9 | char buf[512]; | |
10 | int fd[2], msgsize; | |
11 | register int i, iter; | |
12 | ||
13 | if (argc < 3) { | |
14 | printf("usage: %s iterations message-size\n", argv[0]); | |
15 | exit(1); | |
16 | } | |
17 | argc--, argv++; | |
18 | iter = atoi(*argv); | |
19 | argc--, argv++; | |
20 | msgsize = atoi(*argv); | |
21 | if (msgsize > sizeof (buf) || msgsize <= 0) { | |
22 | printf("%s: Bad message size.\n", *argv); | |
23 | exit(2); | |
24 | } | |
25 | if (pipe(fd) < 0) { | |
26 | perror("pipe"); | |
27 | exit(3); | |
28 | } | |
29 | for (i = 0; i < iter; i++) { | |
30 | write(fd[1], buf, msgsize); | |
31 | read(fd[0], buf, msgsize); | |
32 | } | |
33 | } |