Relay-Version: version B 2.10 5/3/83; site utzoo.UUCP Posting-Version: version B 2.10.1 6/24/83; site sphinx.UChicago.UUCP Path: utzoo!linus!philabs!cmcl2!seismo!harvard!talcott!panda!genrad!decvax!bellcore!allegra!ulysses!mhuxr!ihnp4!gargoyle!sphinx!paws From: paws@sphinx.UChicago.UUCP (Randy Smith) Newsgroups: net.unix-wizards Subject: Help! (on ioctl system call) Message-ID: <651@sphinx.UChicago.UUCP> Date: Tue, 11-Jun-85 13:12:51 EDT Article-I.D.: sphinx.651 Posted: Tue Jun 11 13:12:51 1985 Date-Received: Sun, 16-Jun-85 07:09:28 EDT Organization: U. Chicago - Computation Center Lines: 83 I'm having problems with using the ioctl system call. I eventually got a sample of the problem I'm having down to the following C program. ----------------------------------------------------- #include #include #include #include FILE *debug; main() { long me, mepg; int imepg; union wait status; debug = fopen("debug.file","w"); if (!fork()) { me = getpid(); imepg = (int) mepg = getpgrp((int)me); fprintf(debug,"Me: %d, Pg: %d\n",me,mepg); fflush(debug); fprintf(debug,"Return from setpgrp: %d\n",setpgrp(me,me)); fflush(debug); fprintf(debug,"Return from ioctl: %d\n",ioctl(1,TIOCSPGRP,&imepg)); fflush(debug); fprintf(debug,"I made it (thought you'd like to know)\n"); fflush(debug); exit(0); } fprintf(debug,"Pid from wait: %d\n",wait(&status)); fprintf(debug,"Status code returned: %d\n",status); } ------------------------------------------------------ (forgive the sloppy last printf). When I copile and run this code, it hangs in the ioctl. My debug file shows up (after I ^C) looking like: -------------------------------------------------------- Me: 5567, Pg: 5566 Return from setpgrp: 0 -------------------------------------- If I do a ps (from another terminal) while the thing is hanging, I get: F UID PID PPID CP PRI NI ADDR SZ RSS WCHAN STAT TTY TIME COMMAND 8201 134 4098 1 0 15 0 ff8b8800 58 14 0 I i05 0:13 -tcsh 408021 134 5217 4098 0 25 0 ff8c4800 202 8 T i05 0:04 emacs 8001 134 5354 4098 0 5 0 ff918000 28 6 b698c I i05 0:00 testio 8001 134 5355 5354 0 4 0 ff954000 36 6 T i05 0:00 testio 8201 134 5373 1 0 15 0 ff8ed800 56 50 0 S i13 0:11 -tcsh 8001 134 5462 5373 34 33 0 ff926800 70 38 R i13 0:00 ps glx 8001 134 5463 5373 4 1 0 ff93c800 30 10 3f944 S i13 0:00 tee ex where testio is the name of the program, and tee and emacs should be ignored. Why is this call hanging on me? I'm on a Pyramid 90x, but I got the same (ie. confusing enough that I couldn't tell the difference) results on a VAX 750. Suggestions from the net? -- Randy Smith P.S. If the parent process doesn't wait for the child, the child EXITS during the ioctl. UUcp: . . . ihnp4!gargoyle!sphinx!paws Arpa: dvlp.dilvish%uchicago.mailnet@mit-multics.arpa CSnet: randy@uchicago.csnet