Relay-Version: version B 2.10 5/3/83; site utzoo.UUCP Path: utzoo!mnetor!seismo!mcvax!inria!axis!philip From: philip@axis.UUCP (Philip Peake) Newsgroups: comp.unix.questions Subject: Re: Asynchronous output Message-ID: <781@axis.UUCP> Date: Sat, 20-Dec-86 07:45:46 EST Article-I.D.: axis.781 Posted: Sat Dec 20 07:45:46 1986 Date-Received: Mon, 22-Dec-86 23:15:49 EST References: <1858@batcomputer.tn.cornell.edu> Reply-To: philip@axis.UUCP (Philip Peake) Organization: Axis Digital, 135 rue d'Aguesseau, Boulogne, 92100, FRANCE Lines: 18 In article <1858@batcomputer.tn.cornell.edu> garry%cadif-oak@cu-arpa.cs.cornell.edu writes: >I have an application which entails computing and churning out vast >quantities of data and, for speed, I'd like to have the I/O happening >in parallel with the computing. After reading the BSD and SysV manuals, >I'm puzzled: does the system give us *any way* to do asynchronous output? > >I've thought of writing a (presumably buffered) pipe to "cat" and thence to >my device. Is there anything else? You don't seem to have read your manuals too well. ALL (normal) I/O activity under UNIX is asynchronous. When you do a write(), the data is copied from the data area of your program into a buffer (or clist structure) in the kernel data space. The write() then returns. The buffered data is output either by a dma transfer or by interrupt driven routines within the kernel, depending upon the device to which you are writing. Philip