From owner-freebsd-current Tue Jan 30 13:17:45 1996 Return-Path: owner-current Received: (from root@localhost) by freefall.freebsd.org (8.7.3/8.7.3) id NAA00402 for current-outgoing; Tue, 30 Jan 1996 13:17:45 -0800 (PST) Received: from godzilla.zeta.org.au (godzilla.zeta.org.au [203.2.228.19]) by freefall.freebsd.org (8.7.3/8.7.3) with SMTP id NAA00376 Tue, 30 Jan 1996 13:17:25 -0800 (PST) Received: (from bde@localhost) by godzilla.zeta.org.au (8.6.9/8.6.9) id IAA26417; Wed, 31 Jan 1996 08:15:16 +1100 Date: Wed, 31 Jan 1996 08:15:16 +1100 From: Bruce Evans Message-Id: <199601302115.IAA26417@godzilla.zeta.org.au> To: current@freebsd.org, dyson@freebsd.org Subject: new pipes fail several tests #2 Sender: owner-current@freebsd.org Precedence: bulk Writes to a pipe with no reader don't return -1/EPIPE. Bruce #include #include #include #include #include #include #define check(what, expected) assert((what, expected)) sig_atomic_t caught; static void catch(int s) { caught = 1; } int main(void) { char buf[1]; int fd[2]; int r; r = pipe(fd); check("pipe", r == 0); check("signal", signal(SIGPIPE, catch) != SIG_ERR); r = close(fd[0]); check("close", r == 0); r = write(fd[1], buf, 1); printf("wrote %d bytes, errno = %d, caught = %d\n", r, errno, caught); check("write", r == -1); check("write", errno == EPIPE); check("write", caught == 1); return 0; }