Mail Delivery Problem
SMTP MAILER
postmaster at sandia.gov
Mon Mar 19 07:52:40 AEST 1990
----Reason for mail failure follows----
Sending mail to <math!ckaul at cs.sandia.gov> :
Could not be delivered for three days.
----Transcript of message follows----
Date: 15 Mar 90 07:25:00 MST
From: unix-wizards at BRL.MIL
Subject: UNIX-WIZARDS Digest V9#094
To: "math!ckaul" <math!ckaul at cs.sandia.gov>
Return-Path: <incoming-unix-wizards-request at sandia.gov>
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) <Unix-Wizards-Request at BRL.MIL>
To: UNIX-WIZARDS at BRL.MIL
Reply-To: UNIX-WIZARDS at BRL.MIL
Subject: UNIX-WIZARDS Digest V9#094
Message-ID: <9003150545.aa06456 at 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 at 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 at 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 <guy at auspex.auspex.com>
Subject: Re: Which is more portable: stty < or stty >
Date: 13 Mar 90 19:18:10 GMT
To: unix-wizards at 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 <guy at auspex.auspex.com>
Subject: Re: Which is more portable: stty < or stty >
Date: 13 Mar 90 19:22:38 GMT
To: unix-wizards at 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" <frank at rsoft.bc.ca>
Subject: Re: Which is more portable: stty < or stty >
Date: 14 Mar 90 15:40:19 GMT
To: unix-wizards at sem.brl.mil
In article <3354 at muffin.cme.nist.gov> libes at 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 >/dev/x
--
_____________________________________________________________________________
Frank I. Reiter UUCP: {uunet,ubc-cs}!van-bc!rsoft!frank
Reiter Software Inc. frank at rsoft.bc.ca, a2 at mindlink.UUCP
Surrey, British Columbia BBS: Mind Link @ (604)576-1214, login as Guest
-----------------------------
From: Johan Vromans <jv at mh.nl>
Subject: Re: Which is more portable: stty < or stty >
Date: 14 Mar 90 20:08:58 GMT
Sender: news at mhres.mh.nl
To: unix-wizards at sem.brl.mil
In article <JV.90Mar13162312 at squirrel.mh.nl> jv at 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 at 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 at 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 <rr at csuna.cs.uh.edu>
Subject: Use of ssignal() in Sys V.
Date: 14 Mar 90 05:28:16 GMT
Sender: nntppost at uhnix1.uh.edu
To: unix-wizards at 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 <gwyn at smoke.brl.mil>
Subject: Re: Use of ssignal() in Sys V.
Date: 15 Mar 90 00:24:18 GMT
To: unix-wizards at sem.brl.mil
In article <24199 at uhnix1.uh.edu> rr at 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 <rr at csuna.cs.uh.edu>
Subject: Setting multiple timers from a single process.
Date: 14 Mar 90 05:41:31 GMT
Sender: nntppost at uhnix1.uh.edu
To: unix-wizards at 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 <libes at cme.nist.gov>
Subject: Re: Setting multiple timers from a single process.
Date: 14 Mar 90 20:43:36 GMT
To: unix-wizards at sem.brl.mil
In article <24200 at uhnix1.uh.edu> rr at 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 at cme.nist.gov ...!uunet!cme-durer!libes
-----------------------------
From: Tom Stockfisch <tps at chem.ucsd.edu>
Subject: serious awk bug
Keywords: awk
Date: 14 Mar 90 06:02:46 GMT
To: unix-wizards at 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 at chem.ucsd.edu
-----------------------------
From: Mike McNally <m5 at lynx.uucp>
Subject: Re: serious awk bug
Keywords: awk
Date: 14 Mar 90 15:25:00 GMT
To: unix-wizards at sem.brl.mil
tps at 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] => <null>[^b] => <null>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 <merlyn at iwarp.intel.com>
Subject: Re: serious awk bug
Keywords: awk
Date: 14 Mar 90 17:12:58 GMT
Sender: news at iwarp.intel.com
Followup-To: poster
To: unix-wizards at sem.brl.mil
In article <702 at chem.ucsd.EDU>, tps at 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/;' <<EOF
b
ab
EOF
produces:
2: b
1: ab
2: ab
Just like awk. Amazing.
No problem.
Just another Perl and awk hacker,
--
/=Randal L. Schwartz, Stonehenge Consulting Services (503)777-0095 ==========\
| on contract to Intel's iWarp project, Beaverton, Oregon, USA, Sol III |
| merlyn at iwarp.intel.com ...!any-MX-mailer-like-uunet!iwarp.intel.com!merlyn |
\=Cute Quote: "Welcome to Portland, Oregon, home of the California Raisins!"=/
-----------------------------
From: Craig Leres <leres at ace.ee.lbl.gov>
Subject: Re: Raw disk I/O
Date: 14 Mar 90 06:58:26 GMT
Sender: usenet at helios.ee.lbl.gov
Followup-To: comp.unix.wizards
X-Local-Date: 13 Mar 90 22:58:26 PST
To: unix-wizards at 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 <hue at netcom.uucp>
Subject: repeatability of select()
Date: 14 Mar 90 08:27:37 GMT
To: unix-wizards at 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 <hue at netcom.uucp>
Subject: Re: repeatability of select() (correction)
Date: 14 Mar 90 17:57:59 GMT
To: unix-wizards at sem.brl.mil
In article <9156 at netcom.UUCP> hue at 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 <steve at wattres.uucp>
Subject: Re: ADDING TO TAPE ARCHIVES - AHA1540+2150s
Date: 14 Mar 90 09:30:21 GMT
To: unix-wizards at sem.brl.mil
In article <262 at netdev.Comsys.COM> root at 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 at claris.com also works
If you torture your data long enough, it'll eventually confess.
-----------------------------
From: "Dr A. N. Walker" <anw at maths.nott.ac.uk>
Subject: Re: Dr David G Korn to speak at SVNet
Date: 14 Mar 90 17:03:47 GMT
To: unix-wizards at sem.brl.mil
In article <1990Mar11.160403.27949 at sobeco.com> roe at 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 at maths.nott.ac.uk
-----------------------------
From: Doug Gwyn <gwyn at smoke.brl.mil>
Subject: Re: Large Unix, SYS5.4 on Unisys
Date: 15 Mar 90 00:34:20 GMT
To: unix-wizards at sem.brl.mil
In article <22750 at adm.BRL.MIL> archunix at 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 <era at ncar.ucar.edu>
Subject: mac postscript in ditroff input?
Date: 14 Mar 90 22:46:33 GMT
Sender: news at ncar.ucar.edu
To: unix-wizards at 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 at ncar.ucar.edu [128.117.64.4] * era at ncario.bitnet * era at 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 <yohn at tumult.sgi.com>
Subject: Re: Setting the access/modify time on a file
Date: 14 Mar 90 23:00:46 GMT
Sender: yohn at tumult.sgi.com
To: unix-wizards at sem.brl.mil
In article <1413 at watserv1.waterloo.edu>, tom at 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
**************************
More information about the Comp.unix.wizards
mailing list