bjm@sabin.UUCP (Brendan J. McMahon) (08/16/88)
Fragment from a recent posting: > #include <stdio.h> > main() { > char buf[100]; > (void) fgets(buf, sizeof buf, stdin); > (void) fputs(buf, stdout); > exit(0); ^^^^ > } Different topic. Is there any reason why you should have to call exit, at this point in a program besides buffer flushing, or returning a value? I just had one of the most frustrating bugs that I had in a while. On a XENIX 386 5.2a I had a program that went something like: #include <stdio.h> main() { void compare(); puts("pre compare call"); /* only added after much debuging */ compare(); puts("post compare call"); /* ditto */ } output: pre compare call (output from compare function) post compare call pre compare call (output from compare function) post compare call pre compare call ( on and on until a core dump ) I compiled the program on a Berkley 4.something Vax and it worked fine. Adding an exit(0); after the post compare call on XENIX fixed it (forced term- ination). Any ideas why it didn't exit by itself? -- Brendan J. McMahon Sabin Metal Corp. | Refiners of Precious Metals | Hardware Trouble? Scottsville, NY | ****** Au Ag Pt Pd Rh ****** | Give us a call, we'll 716-538-2194 |lazlo!sabin!bjm || ritcsh!sabin!bjm| melt your trouble away