Path: utzoo!attcan!uunet!wyse!vsi1!ames!elroy!jato!jbrown From: jbrown@jato.Jpl.Nasa.Gov (Jordan Brown) Newsgroups: comp.sources.games.bugs Subject: Re: MAZEWAR compile-time error Message-ID: <239@jato.Jpl.Nasa.Gov> Date: 1 Oct 88 07:02:54 GMT References: <1683@uop.edu> <12600002@cpe> <7409@gryphon.CTS.COM> Reply-To: jbrown@jato.UUCP (Jordan Brown) Organization: Me? Organized? Lines: 22 In article <7409@gryphon.CTS.COM> oleg@gryphon.CTS.COM (Oleg Kiselev) writes: >In article <12600002@cpe> tif@cpe.UUCP writes: >> >>>System I am using has a kernel problem that does not currently allow to have >>>a named pipe opened for both read and write. >>What good is a pipe that can't be opened for both read and write? > >There are certain synchronization problems associated with bi-directional >pipes that are not trivial. The deficiency will be fixed at some point. >Mean while I'd like to play that game! The exact problem you are having is that your kernel does not allow opening the pipe for read/write. That is, you are not allowed to open(pipe,2). Mazewar does this so that the parent (the keyboard process) can kick the kid (the screen process) when you hit ^L. The fix (which I haven't tried) is to change that open(...,2) to an open(...,1). (This code is in user.c in the routine init_pipes.) Note that the child process closes the pipe and reopens it for read, so this change won't hurt it. (My information on your kernel comes from one of your kernel people, and what he says fails agrees with what the program does.)