Path: utzoo!utgpu!news-server.csri.toronto.edu!mailrus!cs.utexas.edu!tut.cis.ohio-state.edu!ucbvax!hplabs!hp-ses!hpdmd48!markw From: markw@hpdmd48.HP.COM (Mark Wolfe) Newsgroups: comp.unix.wizards Subject: Re: Mail Delivery Problem Message-ID: <15710001@hpdmd48.HP.COM> Date: 23 Mar 90 17:41:59 GMT References: <22787@adm.BRL.MIL> Organization: Hewlett Packard - Boise, ID Lines: 750 / hpdmd48:comp.unix.wizards / postmaster@sandia.gov (SMTP MAILER) / 2:52 pm Mar 18, 1990 / ----Reason for mail failure follows---- Sending mail to : Could not be delivered for three days. ----Transcript of message follows---- Date: 15 Mar 90 07:25:00 MST From: unix-wizards@BRL.MIL Subject: UNIX-WIZARDS Digest V9#094 To: "math!ckaul" Return-Path: Received: from SEM.BRL.MIL by sandia.gov with SMTP ; Thu, 15 Mar 90 06:48:44 MST Received: from SEM.BRL.MIL by SEM.BRL.MIL id aa06497; 15 Mar 90 5:59 EST Received: from sem.brl.mil by SEM.BRL.MIL id aa06456; 15 Mar 90 5:45 EST Date: Thu, 15 Mar 90 05:45:04 EST From: The Moderator (Mike Muuss) To: UNIX-WIZARDS@BRL.MIL Reply-To: UNIX-WIZARDS@BRL.MIL Subject: UNIX-WIZARDS Digest V9#094 Message-ID: <9003150545.aa06456@SEM.BRL.MIL> UNIX-WIZARDS Digest Thu, 15 Mar 1990 V9#094 Today's Topics: System V kernel panic not syncing Re: Which is more portable: stty < or stty > Use of ssignal() in Sys V. Re: Use of ssignal() in Sys V. Setting multiple timers from a single process. Re: Setting multiple timers from a single process. serious awk bug Re: serious awk bug Re: Raw disk I/O repeatability of select() Re: repeatability of select() (correction) Re: ADDING TO TAPE ARCHIVES - AHA1540+2150s Re: Dr David G Korn to speak at SVNet Re: Large Unix, SYS5.4 on Unisys mac postscript in ditroff input? Re: Setting the access/modify time on a file ----------------------------------------------------------------- From: neal@mnopltd.uucp Subject: System V kernel panic not syncing Date: 13 Mar 90 15:03:53 GMT Posted: Tue Mar 13 10:03:53 1990 To: unix-wizards@sem.brl.mil ->Anyone know how to get the SCO UNIX System V/386 r3.2 kernel ->to do sync when it panics so fsck is happy when you start up again? -> ->I'm told that BSD can do this, and I have a use for this while ->running this OS on a 'beta' CPU which will cause a panic under ->certain circumstances. Wait a second... This doesn't make sense. Panics are frequently situations where the kernel code is not confident to continue processing. Doing a sync in this situation is like painting over rust. For any degree of system stability you need to fsck and "take your medecine"... ------------------------------------------------------------------------------ Neal Rhodes MNOP Ltd (404)- 972-5430 President Lilburn (atlanta) GA 30247 Fax: 978-4741 uunet!emory!jdyx!mnopltd!neal Or uunet!gatech!stiatl!mnopltd!neal ------------------------------------------------------------------------------ ----------------------------- From: Guy Harris Subject: Re: Which is more portable: stty < or stty > Date: 13 Mar 90 19:18:10 GMT To: unix-wizards@sem.brl.mil >Currently, 4.0.3 defaults to using the native stty. According to a >Sun rep, the next release (4.1) will default to the System V version, >although the next version (5.0) will not have any "preference" (his >word, which he could not explain). It actually sounded to me like >that have simply not yet decided. It sounds to *me* like your Sun rep is seriously confused. (If he couldn't explain his use of "preference", why was he using it? Yeesh.) As of when I left Sun, the intent was to have the BSD environment be the "default", in the sense that if the environment variable PATH isn't set, the "default" path will *not* have "/usr/5bin" before "/bin" or "/usr/bin" (BTW, in SunOS 4.x, there's no point in having "/bin" in your path at all, if you have "/usr/bin" there - "/bin" is just a symlink to "/usr/bin"). "5.0" has not necessarily been chosen as the name for Sun's System V Release 4-based release. If the rep was thinking of that release, the "stty" in "/usr/bin" or wherever will, as one would expect, have the System V behavior. I don't know if System V Release 4 from AT&T will have a "/usr/ucb/stty" that provides the BSD behavior or not; even if they don't, Sun might put one into their release. >Will POSIX provide an answer, or perhaps, provide a stty90 which has a >real interface? According to my copy of Draft 9 of 1003.2: The "stty" utility sets or reports on terminal I/O characteristics for the device that is its standard input. I don't think this is the latest draft, but I'd be surprised if they changed this in a later draft. ----------------------------- From: Guy Harris Subject: Re: Which is more portable: stty < or stty > Date: 13 Mar 90 19:22:38 GMT To: unix-wizards@sem.brl.mil >The former is the 7th Ed. UNIX and 4BSD behavior. >System V assumes you may want to redirect the output somewhere other >than the terminal being probed. You can do that with the V7 and BSD one, it's just more painful - you have to redirect the standard error. The S5 behavior is a bit more natural, in that its output goes to, well, the standard output; the only reason I can see for the V7 behavior is that it makes it possible to set the modes on a tty other than one on which you're logged in without being super-user, since traditionally ttys have been publicly writable but not publicly readable. While in some environments this would be considered a feature ("Hey, Jane, I screwed up my tty settings; could you fix them for me? I'm on '/dev/tty73'."), it would be considered a problem in others ("stty erase 's' kill 't' intr 'y' >/dev/tty73"). Given that in 4.3BSD and now S5R4 ttys are *not* publicly writeable, but writeable only by a special group, to which programs like "write" are set-GID (so that you can't send things like the "transmit screen to host" escape sequence to somebody else's terminal), the V7 behavior doesn't buy you anything any more. ----------------------------- From: "Frank I. Reiter" Subject: Re: Which is more portable: stty < or stty > Date: 14 Mar 90 15:40:19 GMT To: unix-wizards@sem.brl.mil In article <3354@muffin.cme.nist.gov> libes@cme.nist.gov (Don Libes) writes: >According to the man page (SunOS 4.0.3) ... >The native SunOS stty(1) acts on the device that is the current stdout >while their System V stty acts on the device that is the current stdin. Why not both? stty /dev/x -- _____________________________________________________________________________ Frank I. Reiter UUCP: {uunet,ubc-cs}!van-bc!rsoft!frank Reiter Software Inc. frank@rsoft.bc.ca, a2@mindlink.UUCP Surrey, British Columbia BBS: Mind Link @ (604)576-1214, login as Guest ----------------------------- From: Johan Vromans Subject: Re: Which is more portable: stty < or stty > Date: 14 Mar 90 20:08:58 GMT Sender: news@mhres.mh.nl To: unix-wizards@sem.brl.mil In article jv@mh.nl (Johan Vromans) writes: `[SystemV:] ` ` STTY_FLAGS=`stty -g < /dev/tty` ` sane() { stty ${STTY_FLAGS}; } ` `You can't do this from your BSD .login . To which andyb@coat.com (Andy Behrens) replies: ` STTY_OUTPUT=`stty 2>&1 >/dev/tty` ` `Of course, BSD doesn't support 'stty -g', but that's another issue. My BSD system (Ultrix) does. But I mentioned a '.login' file for Csh. Maarten "als iemand 't kan, is hij het wel" Lithmaat replies: `Indeed. But if BSD's stty(1) would have had `-g', you *could* have done: ` ` set STTY_FLAGS="`(stty -g > /dev/tty) |& cat`" Now this works. Johan -- Johan Vromans jv@mh.nl via internet backbones Multihouse Automatisering bv uucp: ..!{uunet,hp4nl}!mh.nl!jv Doesburgweg 7, 2803 PL Gouda, The Netherlands phone/fax: +31 1820 62944/62500 ------------------------ "Arms are made for hugging" ------------------------- ----------------------------- From: Ravi Ramachandran Subject: Use of ssignal() in Sys V. Date: 14 Mar 90 05:28:16 GMT Sender: nntppost@uhnix1.uh.edu To: unix-wizards@sem.brl.mil The man pages for ssignal & gsignal on Sys V are as succint as usual. I tried looking up a few adv. Unix books, but none of them ever mention ssignal. The way I have used it is to use ssignal to initialize the software signal, and then use gsignal to raise it. But this seems more like another version of using setjmp() or calling a procedure. Is there any use for ssignal()? Can I use it between processes (I tried it & it didn't seem to work)? I know the man pages says that the C compiler uses it. But unless there is some way a parallel thread can send a signal, it does not seem too useful. Thanx for shedding any light (I SAID BUD LITE), --ravi- ----------------------------- From: Doug Gwyn Subject: Re: Use of ssignal() in Sys V. Date: 15 Mar 90 00:24:18 GMT To: unix-wizards@sem.brl.mil In article <24199@uhnix1.uh.edu> rr@cs.uh.edu writes: >Is there any use for ssignal()? Can I use it between processes ...? While one can figure out ways to use ssignal/gsignal, they are not essential. Certainly they cannot be used for IPC, only within one process. I suggest never using them. ----------------------------- From: Ravi Ramachandran Subject: Setting multiple timers from a single process. Date: 14 Mar 90 05:41:31 GMT Sender: nntppost@uhnix1.uh.edu To: unix-wizards@sem.brl.mil The subj line says it; I want to set multiple timers from a single process. Using alarm() & catching SIGALARM will permit only a single timer. I need to set different values for the different timers concurrently, and need the ability to restart them or to cancel them. My solution at the moment; each time I need a timer (a max of 4 will be needed concurrently), I spawn a child and store the pid returned to uniquely identify thst timer. The child does a sleep(time) for the required time. After which SIGCLD goes off. In my interrupt routine of my main process, I track down which child expired and determine which timer expired. Dirty, and difficult to manage, but still workable. As they said when tearing down the Berlin Wall, "Open to better suggestions." --ravi- ----------------------------- From: Don Libes Subject: Re: Setting multiple timers from a single process. Date: 14 Mar 90 20:43:36 GMT To: unix-wizards@sem.brl.mil In article <24200@uhnix1.uh.edu> rr@cs.uh.edu writes: >The subj line says it; I want to set multiple timers from a single >process. Using alarm() & catching SIGALARM will permit only a single >timer. I need to set different values for the different timers > >My solution at the moment; [spawn child processes for each timer] Simulate them by waiting for the shortest one, and keeping track of the others yourself. I've done exactly this. Anyone who wants code (4.2BSD) can mail me. Just watch out for things like 1) a timer interrupting your timer management code, 2) trying to cancel one this is in the process of going off (or will be by the time you return), 3) getting a new timer which is shorter than the current one you are waiting for, and 4) the possibility of several being scheduled for the same time. Don Libes libes@cme.nist.gov ...!uunet!cme-durer!libes ----------------------------- From: Tom Stockfisch Subject: serious awk bug Keywords: awk Date: 14 Mar 90 06:02:46 GMT To: unix-wizards@sem.brl.mil The following awk script doesn't behave properly: #! /bin/sh awk '/^a*[^b]/ { print "1:", $0 } /^a*b/ { print "2:", $0 } ' When given the following input b ab It produces the following output 2: b 1: ab 2: ab Basically, the line "ab" should match only rule 2, but it matches both rules. The following script: #! /bin/sh awk '/^a*[^b]c/ { print "1:", $0 } /^a*bc/ { print "2:", $0 } ' works, producing the output 2: bc 2: abc The corresponding lex program works fine. I have run the awk script with both the new awk and old awk, on both a system V machine (silicon graphics iris) and a 4BSD machine (celerity) and all seem to fail. -- || Tom Stockfisch, UCSD Chemistry tps@chem.ucsd.edu ----------------------------- From: Mike McNally Subject: Re: serious awk bug Keywords: awk Date: 14 Mar 90 15:25:00 GMT To: unix-wizards@sem.brl.mil tps@chem.ucsd.edu (Tom Stockfisch) writes: >The following awk script doesn't behave properly: >#! /bin/sh >awk '/^a*[^b]/ { print "1:", $0 } >/^a*b/ { print "2:", $0 } >' >When given the following input >b >ab >It produces the following output >2: b >1: ab >2: ab >Basically, the line "ab" should match only rule 2 . . . I disagree: a*[^b] => [^b] => a The a* is matching the empty string, and the [^b] is matching the a. -- Mike McNally Lynx Real-Time Systems uucp: {voder,athsys}!lynx!m5 phone: 408 370 2233 Where equal mind and contest equal, go. ----------------------------- From: Randal Schwartz Subject: Re: serious awk bug Keywords: awk Date: 14 Mar 90 17:12:58 GMT Sender: news@iwarp.intel.com Followup-To: poster To: unix-wizards@sem.brl.mil In article <702@chem.ucsd.EDU>, tps@chem (Tom Stockfisch) writes: | | The following awk script doesn't behave properly: | | #! /bin/sh | | awk '/^a*[^b]/ { print "1:", $0 } | /^a*b/ { print "2:", $0 } | ' | | When given the following input | | b | ab | | It produces the following output | | 2: b | 1: ab | 2: ab | | Basically, the line "ab" should match only rule 2, but it matches both | rules. [This doesn't belong in WIZARDS. Sorry.] But, it *does* match rule 1! Look carefully. If you take zero 'a's, and one 'not b', you can get line "ab"! In Perl: perl -ne 'print "1: $_" if /^a*[^b]/; print "2: $_" if /^a*b/;' < Subject: Re: Raw disk I/O Date: 14 Mar 90 06:58:26 GMT Sender: usenet@helios.ee.lbl.gov Followup-To: comp.unix.wizards X-Local-Date: 13 Mar 90 22:58:26 PST To: unix-wizards@sem.brl.mil (Sorry to jump into this so late but it seems like I never have time to read news.) Folks interested in raw disk I/O will also be interested in the little disk bench mark package we've thrown together. Eventually, I'd like to it to include a complete tutorial on How To Tune Your Filesystem; for now the (limited) documentation really only deals with how to measure raw disk speeds. The package is easy to use; the primary part is the "disktest" script which does raw reads at block sizes ranging from 4k to 128k. There's a simple line fitting program that allows you to munch "disktest" runs down to the throughput (in KB/sec) and fixed overhead (in ms) numbers. For example, I've measured 2094.07 KB/sec, 1.49 ms on my Sun 3/180 which runs SunOS 3.5 and has Fujitsu M2344's on an Interphase 4400 controller. There are also some scripts for use with xgraph. The disktest package is available via anonymous ftp from the host ftp.ee.lbl.gov (128.3.254.68) in the file disktest.shar.Z. As usual, use binary mode for best results. Craig ----------------------------- From: Jonathan Hue Subject: repeatability of select() Date: 14 Mar 90 08:27:37 GMT To: unix-wizards@sem.brl.mil Under what conditions would the following code fragments not be equivalent? case #1: n = select(nfds, rdset, wrset, exset, timeout_p); case #2: select(nfds, rdset, wrset, exset, timeout_p); /* reset rdset, wrset, and exset to their original values */ ... n = select(nfds, rdset, wrset, exset, (struct timeval *) 0); I'm interested in the behavior on any version of UNIX. Assume for the moment that select() isn't getting interrupted by a signal or anything like that. One case I can think of is HP-UX and a graphics display. You can detect vertical retrace interrupts or blitter interrupts by setting the bit corresponding to an open frame buffer in the exception mask. If you called it again without reenabling the interrupt you wouldn't see the second one. Are there any other cases like this? -Jonathan ----------------------------- From: Jonathan Hue Subject: Re: repeatability of select() (correction) Date: 14 Mar 90 17:57:59 GMT To: unix-wizards@sem.brl.mil In article <9156@netcom.UUCP> hue@netcom.UUCP (Jonathan Hue) writes: >case #2: > select(nfds, rdset, wrset, exset, timeout_p); > /* reset rdset, wrset, and exset to their original values */ > ... > n = select(nfds, rdset, wrset, exset, (struct timeval *) 0); I screwed up, instead of that last line there it should have been something like: zero.tv_sec = 0; zero.tv_usec = 0; n = select(nfds, rdset, wrset, exset, &zero); -Jonathan ----------------------------- From: Steve Watt Subject: Re: ADDING TO TAPE ARCHIVES - AHA1540+2150s Date: 14 Mar 90 09:30:21 GMT To: unix-wizards@sem.brl.mil In article <262@netdev.Comsys.COM> root@netdev.Comsys.COM (Alex Huppenthal) writes: < How can I add to the end of tar archives ? tar cv, tar cv works, but < tape rewind, tape rfm, tar cv - does not! < < 1. Change the /etc/default/tar file to archive=/dev/nrct0 < 2. Change the /etc/default/tape file to /dev/nrct0 < 3. tar cv file1 < 4. tar cv file2 < 5. tape rewind < 6. tape rfm - moves you to the end of file one < 7. tape rfm - moves you to the end of file two < 8. tape rfm - this is not a failure, it's a *feature* :-) Actually, this moves you beyond the end of the file mark, because the previous tape rfm leaves it at the file mark. < 9. tar cv file3 < 10. tape rewind < 11. tape rfm < 12. tape rfm < 13. tape rfm - now you are positioned at the end of the second file. < 14. tar tvf ( or xvf ) /dev/rct0 ( can you beleive this? I can't ) < 15. THIS WORKS..... ^^^^--- notice *rct0* not nrct0, - ask SCO why! It doesn't matter which you choose, unless you want to add another file after this one. The nrct driver means "don't rewind _ON_CLOSE_". Only use the rct driver if you want the tape rewound after each close. [minor (probably unwarranted; most are) flame against SCO removed] You could, of course use "tar rv files files files", and get them added on to the end of the current archive, so you didn't have to run tar 3 times to get all the data off of the tape. -- Steve Watt ...!claris!wattres!steve wattres!steve@claris.com also works If you torture your data long enough, it'll eventually confess. ----------------------------- From: "Dr A. N. Walker" Subject: Re: Dr David G Korn to speak at SVNet Date: 14 Mar 90 17:03:47 GMT To: unix-wizards@sem.brl.mil In article <1990Mar11.160403.27949@sobeco.com> roe@sobeco.com (r.peterson) writes: >And even more to do with the fact that Bourne used the preprocessor >to turn C into a bizarre pascal-lookalike. Truly the most difficult >code I've ever tried to modify. Actually, he used it to turn an Algol lookalike [not very!] into C. Some of us old-timers found it quite readable. I've seen much worse code over the years. -- Andy Walker, Maths Dept., Nott'm Univ., UK. anw@maths.nott.ac.uk ----------------------------- From: Doug Gwyn Subject: Re: Large Unix, SYS5.4 on Unisys Date: 15 Mar 90 00:34:20 GMT To: unix-wizards@sem.brl.mil In article <22750@adm.BRL.MIL> archunix@stl-08sima.army.mil (Bernie J. Potter) writes: >In addition, I have been asked to locate alternate sources >(besides Unisys) for a System V Release 4 based operating >system for a Unisys 5000/80 machine. We are unable to >upgrade to Release 4 under our current Unisys contract >and would like to find another source for doing so. By far your best source for an operating system would be the vendor, even if it means writing a separate procurement action (which you would have to do anyway no matter what the source of the off-contract software). Since UNIX System V Release 4.0 has just been released, it may have not yet been ported to your hardware even if the vendor plans to do so. If Unisys tells you definitely that they have no plans to upgrade their current OS to SVR4.0 (quite apart from considerations of the DA MINIS contract), then try contacting Arete who as I recall actually developed the system you are now using (resold by Unisys). I'm not sure that Arete is still in business under the same name, however; this industry changes its infrastructure too frequently for me to keep up with such details. ----------------------------- From: Ed Arnold Subject: mac postscript in ditroff input? Date: 14 Mar 90 22:46:33 GMT Sender: news@ncar.ucar.edu To: unix-wizards@sem.brl.mil I'm interested in corresponding with anyone who has succeeded in merging postscript generated by Mac applications such as MacDraw or Illustrator, into ditroff input, to get merged ditroff text & Apple postscript graphics on the same page. I've tried this using: TranScript 2.1 (psdit) LaserPrep 5.2 SunOS 4.0.3 Apple LaserWriter Plus (sort of works) Imagen 2308 with ultrascript and Apple dictionary dictv52.ps (doesn't work; quits with error message) I followed the suggestions given on the psdit man page to merge in the postscript, and various permutations thereof, but ditroff text is either lost, or appears on the next page, when printing to the LaserWriter. Adobe doesn't seem to know whether this is possible; but they won't talk with me anyway, since I'm not an Adobe developer. I'm not particularly eager to learn the entire Apple dictionary. :-( -- Ed Arnold * NCAR * POB 3000, Boulder, CO 80307-3000 * 303-497-1253(w) era@ncar.ucar.edu [128.117.64.4] * era@ncario.bitnet * era@ncar.uucp "See, the human mind is kind of like ... a pinata. When it breaks open, there's a lot of surprises inside." --Jane Wagner/Lily Tomlin ----------------------------- From: Mike Thompson Subject: Re: Setting the access/modify time on a file Date: 14 Mar 90 23:00:46 GMT Sender: yohn@tumult.sgi.com To: unix-wizards@sem.brl.mil In article <1413@watserv1.waterloo.edu>, tom@mims-iris.waterloo.edu (Tom Haapanen) writes: > I wish to update a file (with an advisory lock), and then to close it, > setting the access and modify times to (almost) the same time. Here > is what I'm attempting: > > FILE *fp; > long times; > > fp = fopen("filename", "w"); > flock(fileno(fp), LOCK_EX); > > ... much i/o to the file ... > > fflush(fp); > times[1] = time(×[0]) - (long)2; > utime(mailfile, times); > > flock(fileno(fp), LOCK_UN); > fclose(fp); > > Now, at what point does the modify time get set? the utime() call appears > to set the access time, but the modify time appears to be set AGAIN after > the access time. Where SHOULD it get set? And what should I do to make > sure that my access time > modify time? > > The OS is IRIX 3.2 -- aka System V.3. Thanks for any and all replies! This is a bug in 3.2 -- the Extent File System routine which is deallocating preallocated file blocks on close is (mistakenly) forcing the modify time to be set (to the close time). It has been fixed for the upcoming release. For now, reopen the file after the fclose, and *then* call utime and reclose the file. The deallocation routine will not be called (actually, will return without doing anything) since there had been no file activity since the open. Michael Thompson ----------------------------- End of UNIX-WIZARDS Digest ************************** ----------