]>
Commit | Line | Data |
---|---|---|
726f6388 JA |
1 | /* psize.c - Find pipe size. */ |
2 | ||
3 | /* Copyright (C) 1987, 1991 Free Software Foundation, Inc. | |
4 | ||
5 | This file is part of GNU Bash, the Bourne Again SHell. | |
6 | ||
3185942a JA |
7 | Bash is free software: you can redistribute it and/or modify |
8 | it under the terms of the GNU General Public License as published by | |
9 | the Free Software Foundation, either version 3 of the License, or | |
10 | (at your option) any later version. | |
726f6388 | 11 | |
3185942a JA |
12 | Bash is distributed in the hope that it will be useful, |
13 | but WITHOUT ANY WARRANTY; without even the implied warranty of | |
14 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |
15 | GNU General Public License for more details. | |
726f6388 JA |
16 | |
17 | You should have received a copy of the GNU General Public License | |
3185942a JA |
18 | along with Bash. If not, see <http://www.gnu.org/licenses/>. |
19 | */ | |
726f6388 JA |
20 | |
21 | /* Write output in 128-byte chunks until we get a sigpipe or write gets an | |
22 | EPIPE. Then report how many bytes we wrote. We assume that this is the | |
23 | pipe size. */ | |
ccc6cda3 JA |
24 | #include <config.h> |
25 | ||
26 | #if defined (HAVE_UNISTD_H) | |
cce855bc JA |
27 | # ifdef _MINIX |
28 | # include <sys/types.h> | |
29 | # endif | |
ccc6cda3 JA |
30 | # include <unistd.h> |
31 | #endif | |
726f6388 JA |
32 | |
33 | #include <stdio.h> | |
cce855bc | 34 | #ifndef _MINIX |
d166f048 | 35 | #include "../bashtypes.h" |
cce855bc | 36 | #endif |
726f6388 JA |
37 | #include <signal.h> |
38 | #include <errno.h> | |
39 | ||
40 | #include "../command.h" | |
41 | #include "../general.h" | |
ccc6cda3 | 42 | #include "../sig.h" |
95732b49 JA |
43 | |
44 | #ifndef errno | |
726f6388 | 45 | extern int errno; |
95732b49 | 46 | #endif |
726f6388 JA |
47 | |
48 | int nw; | |
49 | ||
50 | sighandler | |
51 | sigpipe (sig) | |
52 | int sig; | |
53 | { | |
54 | fprintf (stderr, "%d\n", nw); | |
55 | exit (0); | |
56 | } | |
57 | ||
d166f048 | 58 | int |
726f6388 JA |
59 | main (argc, argv) |
60 | int argc; | |
61 | char **argv; | |
62 | { | |
63 | char buf[128]; | |
64 | register int i; | |
65 | ||
66 | for (i = 0; i < 128; i++) | |
67 | buf[i] = ' '; | |
68 | ||
69 | signal (SIGPIPE, sigpipe); | |
70 | ||
71 | nw = 0; | |
72 | for (;;) | |
73 | { | |
74 | int n; | |
75 | n = write (1, buf, 128); | |
76 | nw += n; | |
77 | } | |
d166f048 | 78 | return (0); |
726f6388 | 79 | } |