[comp.unix.wizards] Undeliverable mail: SMTP delivery failure

IN% Postmaster@VAX1.Mankato.MSUS.EDU %MKVAX1.DECNET@msus1.bitnet (PMDF Mail Server) (02/15/91)

Return-path: <postmaster@VAX1.Mankato.MSUS.EDU>
Date: Thu, 14 Feb 1991 13:46 CST
From: PMDF Mail Server <Postmaster@VAX1.Mankato.MSUS.EDU>
Subject: Undeliverable mail: SMTP delivery failure
To: "MSUS1::IN%\"Unix-Wizards@BRL.MIL\""@VAX1.Mankato.MSUS.EDU
Message-id: <8ACC1A4A80204963@VAX1.Mankato.MSUS.EDU>

The message could not be delivered to:

Addressee: BD6@MKATT1.MANKATO.MSUS.EDU
Reason: Illegal host/domain name found.

----------------------------------------

Received: from DECNET-MAIL by VAX1.Mankato.MSUS.EDU with PMDF#10000; Thu, 14
 Feb 1991 13:43 CST
Date: Thu, 14 Feb 1991 13:43 CST
From: "MSUS1::IN%\"Unix-Wizards@BRL.MIL\""@VAX1.Mankato.MSUS.EDU
Subject: Sockets/SYSV
To: BD6@MKATT1.MANKATO.MSUS.EDU
Message-id: <8A6DDB180020523B@VAX1.Mankato.MSUS.EDU>
X-VMS-To: "Brian D. Goecke" <bd6%MKVAX1.DECNET@MSUS1.BITNET>

Return-path: <UNIX-WIZ@NDSUVM1.BITNET>
Received: from NDSUVM1.BITNET (MAILER@NDSUVM1) by MSUS1.MSUS.EDU with
 PMDF#10130; Thu, 14 Feb 1991 02:46 CST
Received: by NDSUVM1 (Mailer R2.07) id 3876; Thu, 14 Feb 91 02:45:18 CST
Date: Thu, 14 Feb 91 09:43:00 LCL
From: Olaf Erb <UJ65@DKAUNI2.BITNET>
Subject: Sockets/SYSV
Sender: Unix-Wizards Mailing List <UNIX-WIZ@NDSUVM1.BITNET>
To: "Brian D. Goecke" <bd6%MKVAX1.DECNET@MSUS1.BITNET>
Reply-to: Unix-Wizards@BRL.MIL
Message-id: <2E8868C02000346B@MSUS1.MSUS.EDU>

I heard there exits a library emulating sockets via names pipes
on a sys5 machine. Where is it available?
Pse reply to uj65@dkauni2.bitnet directly, i've no access to this
group.
Tnx,
Olaf

IN% Postmaster@VAX1.Mankato.MSUS.EDU %MKVAX1.DECNET@msus1.bitnet (PMDF Mail Server) (02/15/91)

Return-path: <postmaster@VAX1.Mankato.MSUS.EDU>
Date: Thu, 14 Feb 1991 13:43 CST
From: PMDF Mail Server <Postmaster@VAX1.Mankato.MSUS.EDU>
Subject: Undeliverable mail: SMTP delivery failure
To: "MSUS1::IN%\"UNIX-WIZARDS@BRL.MIL\""@VAX1.Mankato.MSUS.EDU
Message-id: <8A67D160E020493A@VAX1.Mankato.MSUS.EDU>

The message could not be delivered to:

Addressee: BD6@MKATT1.MANKATO.MSUS.EDU
Reason: Illegal host/domain name found.

----------------------------------------

Received: from DECNET-MAIL by VAX1.Mankato.MSUS.EDU with PMDF#10000; Thu, 14
 Feb 1991 13:42 CST
Date: Thu, 14 Feb 1991 13:42 CST
From: "MSUS1::IN%\"UNIX-WIZARDS@BRL.MIL\""@VAX1.Mankato.MSUS.EDU
Subject: UNIX-WIZARDS Digest  V12#017
To: BD6@MKATT1.MANKATO.MSUS.EDU
Message-id: <8A4D515220205736@VAX1.Mankato.MSUS.EDU>
X-VMS-To: "Brian D. Goecke" <bd6%MKVAX1.DECNET@MSUS1.BITNET>

Return-path: <UNIX-WIZ@NDSUVM1.BITNET>
Received: from NDSUVM1.BITNET (MAILER@NDSUVM1) by MSUS1.MSUS.EDU with
 PMDF#10130; Wed, 13 Feb 1991 05:36 CST
Received: by NDSUVM1 (Mailer R2.07) id 6288; Wed, 13 Feb 91 05:32:49 CST
Date: Wed, 13 Feb 91 05:45:03 EST
From: Mike Muuss The Moderator <Unix-Wizards-Request@BRL.MIL>
Subject: UNIX-WIZARDS Digest  V12#017
Sender: Unix-Wizards Mailing List <UNIX-WIZ@NDSUVM1.BITNET>
To: "Brian D. Goecke" <bd6%MKVAX1.DECNET@MSUS1.BITNET>
Reply-to: UNIX-WIZARDS@BRL.MIL
Message-id: <7D22E427A00023E4@MSUS1.MSUS.EDU>
X-To:         UNIX-WIZARDS@BRL.MIL

UNIX-WIZARDS Digest          Wed, 13 Feb 1991              V12#017
 
Today's Topics:
                       Re: Question:Books on Unix
                           mailing-list demon
                         Re: mailing-list demon
         Comer's TCP/IP books (was: Re: Wizard-level questions)
                                Re: dup2
                   Csh hacking -- having problems...
                   How to read v6 distribution tapes?
                  Interprocess Communication question
 
-----------------------------------------------------------------
 
From: "John G. Kissane" <kissane@motcid.uucp>
Subject: Re: Question:Books on Unix
Date: 23 Jan 91 12:44:30 GMT
To:       unix-wizards@sem.brl.mil
 
In article <11425@darkstar.ucsc.edu> googol@ucscb.ucsc.edu (60778000) writes:
>
>Hi! Could anyone recommend some books on Unix related to the following
>topics: Unix Kernel, Shell Programming, Unix Utilities . Is there
>any single book that talks about all these topics ? thanks.
 
I suggest that you take a look at O'Reilly & Associates. They have
several excellent books on a large number of UNIX topics.
 
They can be reached via e-mail at the following address:
 
	ora!nuts
 
Good Luck.
--
--
John Kissane,					Mahon Industrial Estate,
Motorola Ireland Ltd.				Blackrock, Cork, Ireland.
 ...!uunet!motcid!kissane			+353-21-357-101
 
-----------------------------
 
From: Vance Heron <heron@mars.jpl.nasa.gov>
Subject: Re: Question:Books on Unix
Date: 23 Jan 91 21:29:53 GMT
Sender: news@jato.jpl.nasa.gov
Nntp-Posting-Host: mars.jpl.nasa.gov
To:       unix-wizards@sem.brl.mil
 
In article <11425@darkstar.ucsc.edu> googol@ucscb.ucsc.edu (60778000) writes:
>
>Hi! Could anyone recommend some books on Unix related to the following
>topics: Unix Kernel, Shell Programming, Unix Utilities . Is there
>any single book that talks about all these topics ? thanks.
 
For Shell programming and utilities, I can reccomend "Tricks of the Unix
Masters" put out by the Waite group.
 
-----------------------------
 
From: "Andreas C. Lemke" <andreas@newsigi.us>
Subject: mailing-list demon
Date: 12 Feb 91 13:59:43 GMT
Sender: news <news@csn.org>
Nntp-Posting-Host: newsigi.colorado.edu
To:       unix-wizards@sem.brl.mil
 
Hi,
 
I would like to create a mailing list with as little administrative
effort for myself as possible.  To that end *everybody* should be able
to add, update, or remove people from the list, as well as obtain a
listing of the current mail addresses on the list.  This should be
doable by mail, e.g., if a new person wanted to be added to the alias
he/she would simply send a mail-message containing a command such as
"add joe@abc.edu" and some sort of demon should carry out the command.
 
Do you guys know of some software that filters incoming mail messages
for commands and executes them?
 
Thanks.
 
 ..................					       Andreas C. Lemke
 ... andreas ..:-).			      CS Dept., U. of Colorado, Boulder
 ..................			andreas@cs.colorado.edu, (303) 492-1503
--
 
 ..................					       Andreas C. Lemke
 ... andreas ..:-).			      CS Dept., U. of Colorado, Boulder
 ..................			andreas@cs.colorado.edu, (303) 492-1503
 
-----------------------------
 
From: "Andreas C. Lemke" <andreas@newsigi.us>
Subject: mailing-list demon
Date: 12 Feb 91 15:19:03 GMT
Sender: news <news@csn.org>
Nntp-Posting-Host: newsigi.colorado.edu
To:       unix-wizards@sem.brl.mil
 
Hi,
 
I would like to create a mailing list with as little administrative
effort for myself as possible.  To that end *everybody* should be able
to add, update, or remove people from the list, as well as obtain a
listing of the current mail addresses on the list.  This should be
doable by mail, e.g., if a new person wanted to be added to the alias
he/she would simply send a mail-message containing a command such as
"add joe@abc.edu" and some sort of demon should carry out the command.
 
Do you guys know of some software that filters incoming mail messages
for commands and executes them?  I'm thinking of something like a perl
script to be installed as the alias for mailing-list-request.
 
Thanks.
--
 
 ..................					       Andreas C. Lemke
 ... andreas ..:-).			      CS Dept., U. of Colorado, Boulder
 ..................			andreas@cs.colorado.edu, (303) 492-1503
 
-----------------------------
 
From: "Gary Weimer (588-0953" <weimer@garden.kodak.com>
MMDF-Warning:  Parse error in original version of preceding line at BRL.MIL
Subject: Re: mailing-list demon
Date: 12 Feb 91 21:59:54 GMT
Sender: news@ssd.kodak.com
To:       unix-wizards@sem.brl.mil
 
I tried to reply, but my mailer couldn't find the host.
 
In article <ANDREAS.91Feb12091903@newsigi.us>, andreas@newsigi.us
(Andreas C. Lemke) writes:
|> Hi,
|>
|> I would like to create a mailing list with as little administrative
|> effort for myself as possible.  To that end *everybody* should be able
|> to add, update, or remove people from the list, as well as obtain a
|> listing of the current mail addresses on the list.  This should be
|> doable by mail, e.g., if a new person wanted to be added to the alias
|> he/she would simply send a mail-message containing a command such as
|> "add joe@abc.edu" and some sort of demon should carry out the command.
|>
|> Do you guys know of some software that filters incoming mail messages
|> for commands and executes them?  I'm thinking of something like a perl
|> script to be installed as the alias for mailing-list-request.
 
I don't know if this will help at all or not. It's not exactly what you
asked for. This is something I wrote to sort my incomming mail. You can
setup a special login id that this can be installed under, or use your
own and require that a specific subject line be used. You'll need to
understand grep and maybe awk to understand what I'm doing in the sort
section of mailsort.csh. To tell the mail server to use mailsort.csh, I
had to create a .forward file in my home directory (I'm using Unix,
specifically SunOS):
 
 -------------- .forward file ------------------
"|/u/users1/weimer/bin/mailsort.csh weimer ~/MAIL"
 -------------- end .forward file ------------------
 
The mailsort.csh program follows. If you would like more explanation,
write back and ask (My .sig has a mail address which should work).
 
 ------------ mailsort.csh file ------------------
#!/bin/csh -fb
 
# login id of person using this script
# environment vars take precidence over defaults
if (!($?USER)) set USER=weimer
 
# mail directory of person using this script
# environment vars take precidence over defaults
#    NOTE: USER will not be set when prog called by mail daemon
if (!($?MAILDIR)) then
  if (-e ~$USER/MAIL) then
    set MAILDIR=~$USER/MAIL
  else
    set MAILDIR=~$USER/mail
  endif
endif
 
###################################################################
# NOTE: mail message will be saved in the file $MSG,
#       the mail header only will be saved in the file $HEADER
#       the mail body only will be saved in the file $BODY
###################################################################
 
# mail header lines to skip when saving message
#    $MSG will still have these, $HEADER will not
set HDRSKIP='$1=="Received:" || $1=="id" || $1=="Message-Id:"'
#set HDRSKIP=""
 
# arguments take precidence over defaults and environmen vars
#    NOTE: this is not important part of code logic (you can skip it)
set PARAMS=($*)
if ($#PARAMS > 1) then
  set USER=$PARAMS[1]
  set MAILDIR=$PARAMS[2]
  set TMP=`echo $MAILDIR|awk '{print index($1,"//")}'`
  if ($TMP == 1) set MAILDIR=~$USER`echo $MAILDIR|awk '{print substr($1,2)}'`
else if ("$PARAMS" != "") then
  set $USER=$PARAMS
  if (-e ~$USER/MAIL) then
    set MAILDIR=~$USER/MAIL
  else
    set MAILDIR=~$USER/mail
  endif
endif
 
#######################################################################
#
# generic setup stuff
#
#######################################################################
# date in case I want it for file names
set DATE    = `date +"%y-%m-%d"`
 
# awk script for separating mail header from mail body
set PARSER=('{if (b) {print $0>>bf;next}};{if (NF==0) {b=1;next}};{if
(""'$HDRSKIP'){next}};{print $0>>hf};END{print>>bf;print>>hf}')
 
# files for msg, header, & body
set MSG="/tmp/$USER.mail.$$"
set HEADER=$MSG.head
set BODY=$MSG.body
/bin/rm -f $HEADER $BODY $MSG    # just in case we've found a duplicate name...
 
# our mail server uses /usr/spool/mail, other machines mount this in /var
if (-e /usr/spool/mail) then
  set MAILBOX=/usr/spool/mail/$USER
else
  set MAILBOX=/var/spool/mail/$USER
endif
 
# stdin is the mail message being sent, put it in $MSG
cat > $MSG
# separate header and body
awk "$PARSER" hf=$HEADER bf=$BODY $MSG
 
while (1)	#we really only go through loop once
                # this allows us to use break instead of goto
 
#######################################################################
#
# BEGIN SORTING
#
#######################################################################
 
#######################################################################
# if you do not want a message to be sent to yourself, and you do not
# want it to match any other conditions, 'break' after sending message--
# DO NOT 'exit'--temporary files will not get removed
#######################################################################
# when concatinating to a mailbox, you should always add a blank line
# to the end of what you are concatinating (hence all the 'echo ""'s
# below)
#######################################################################
 
#
# extra stuff just for me :-)
#
# intro to prepend to forwarded msg's (stating this has been auto-forwarded)
set AUTOHDR=$MAILDIR/auto.header
# flag for who a copy was sent to (put at end my copy of files auto-forwarded)
set COPYHDR=$MAILDIR/copy.header
 
#
# template
#
#set SUBJECT=`grep '^Subject:.<subj to check for>' $HEADER`
#set TO=`grep '^To:.<id you expect forwarded mail from>' $HEADER`
#set OTHER=`grep '<text to look for in body of msg>' $BODY`
#if ("$<SUBJECT, TO, or OTHER>" != "") then # we found a match
#    # do any other calculations/parsing here
#
#    # save to a file
#    (cat $<MSG, HEADER, and/or BODY>; echo "") >> $MAILDIR/<file>
#    # put in your own mailbox (as if we never did this script)
#    (cat $MSG; echo "") >> $MAILBOX
#    # forward to someone else
#    cat $<MSG, HEADER, and/or BODY> | /usr/ucb/Mail -s "<subject>" <userid>
#
#    # run any programs, edit files, etc. that you want to here
#    break
#endif
 
 
#
# Budtool Report
#
#    simply write $MSG to appropriate file
#
set SUBJECT=`grep '^Subject:.Budtool.Report$' $HEADER`
if ("$SUBJECT" != "") then
    # body of msg has machine name on line starting with 'rsh'
    set MACH=`grep '^rsh' $BODY | awk '{print $2; exit}'`
    # write mail to file
    (cat $MSG; echo "") >> $MAILDIR/backups/$MACH/$DATE
    break
endif
 
#
# warehouse submissions -- cc: edj
#
set SUBJECT=`grep '^Subject:.wh.submission$' $HEADER`
if ("$SUBJECT" != "") then
    (cat $AUTOHDR $HEADER $BODY) | /usr/ucb/Mail -s "wh submission" edj
    (cat $MSG $COPYHDR;echo "edj";echo "") >> $MAILBOX
    break
endif
 
#
# test (see if any of this works...)
#
#set SUBJECT=`grep '^Subject:.test$' $HEADER`
#if ("$SUBJECT" != "" ) then
#    (cat $HEADER; echo "test successful"; echo "") >> $MAILBOX
#    break
#endif
 
#######################################################################
#
# No matches--Put in mailbox
#
#######################################################################
 
cat $MSG >> $MAILBOX
echo "" >> $MAILBOX
break  #don't repeat while loop
end
/bin/rm -f $HEADER $BODY $MSG
exit
 ------------ end mailsort.csh file ------------------
 
weimer@ssd.kodak.com ( Gary Weimer )
 
-----------------------------
 
From: Nick Dokos <nick@osf.org>
Subject: Comer's TCP/IP books (was: Re: Wizard-level questions)
Date: 12 Feb 91 17:54:22 GMT
Sender: news@osf.org
To:       unix-wizards@sem.brl.mil
 
|>
|> Of the list above, Comer was missing.  The original poster asked something
|> about networking.  A text I have found invaluable is:
|>
|> Internetworking with TCP/IP: Principles, Protocols, and Architecture
|> by Douglas Comer, (c) 1988, Prentice-Hall,  ISBN 0-13-470154-2
|>
|> It is well written and has answered the vast majority of my questions
|> on networking.
|>
|> --
|> scott barman			|  There comes a time in everyone's existance
|> scott@nbc1.ge.com		|  when actions speak louder than words.
|> (This does not represent any	|  Just make sure your actions are louder
|> opinions of NBC or affiliates)	|  than the next guy's!		- Anonymous
 
 
There is a second edition, expanded and improved:
 
	Internetworking with TCP/IP, Vol.1: Principles, Protocols
	and Architecture by Douglas E. Comer, (c) 1991, Prentice-Hall,
	ISBN 0-13-468505-9.
 
The second volume was scheduled for last November, but as far as I know
it is still not out. The blurb in the back of the first volume says:
 
	Internetworking with TCP/IP, Vol.2: Implementation
	and Internals by Douglas E.Comer and David L.Stevens.
 
--
Nick Dokos		(nick@osf.org)
Systems Engineering	OSF
 
-----------------------------
 
From: Guy Harris <guy@auspex.auspex.com>
Subject: Re: dup2
Date: 12 Feb 91 18:30:43 GMT
To:       unix-wizards@sem.brl.mil
 
>Do you mean that V7 had dup2 but System V doesn't?
 
Yes.  For whatever reason, that particular branch of the family didn't
have "dup2()"; it did, however, have "fcntl()" and the F_DUPFD
subfunction thereof, at least as far back as S3 (I don't remember
whether earlier members of that branch had it).
 
S5R3 picked up "dup2()", which is in POSIX; 4.2BSD picked up "fcntl()",
which is also in POSIX.
 
>And what about systems that don't have fcntl?
 
If you have neither "fcntl()" nor "dup2()", you're not dealing with a
UNIX, or lookalike, that does a reasonable job of looking like a modern
UNIX (it's not as modern as V7, even), in which case 1) you may have a
problem if you need "dup2()"-like functionality (you might have to
repeatedly "dup()" the file descriptor until it reaches the desired
value, and then close all the intermediate descriptors) and 2) you
probably have a bunch of other problems as well.
 
-----------------------------
 
From: Chet Ramey <chet@odin.ins.cwru.edu>
Subject: Re: dup2
Date: 12 Feb 91 20:51:49 GMT
Sender: news@usenet.ins.cwru.edu
Nntp-Posting-Host: odin.ins.cwru.edu
To:       unix-wizards@sem.brl.mil
 
In article <richard.666334818@fafnir.la.locus.com> richard@locus.com (Richard M.
 Mathews) writes:
 
>I would post what I consider to be the right answer, but I have licensing
>problems.  I can recommend taking ideas from both Gwyn and Ramey; perhaps
>one of them would be willing to post the result of such a merge.
 
How about this (apologies for the Gnu coding style)?  (As an aside, I do not
think that the second fcntl will ever return EINVAL, since it only returns
that error for out-of-range values (< 0 or >= getdtablesize()), and that
case is already handled explicitly.)
 
dup2 (fd1, fd2)
     int fd1, fd2;
{
  int saved_errno, r;
 
  if (fcntl (fd1, F_GETFL, 0) == -1)    /* fd1 is an invalid fd */
    return (-1);
 
  if (fd2 < 0 || fd2 >= getdtablesize ())	/* This could be removed. */
    {
      errno = EBADF;
      return (-1);
    }
 
  if (fd1 == fd2)
    return (0);
 
  saved_errno = errno;
  (void) close (fd2);
  r = fcntl (fd1, F_DUPFD, fd2);
 
  if (r >= 0)
    errno = saved_errno;
  else
    {
      if (errno == EINVAL)
	errno = EBADF;
    }
 
  return (r);
}
 
Chet
--
Chet Ramey				``There's just no surf in
Network Services Group			  Cleveland, U.S.A. ...''
Case Western Reserve University
chet@ins.CWRU.Edu		My opinions are just those, and mine alone.
 
-----------------------------
 
From: The Grey Wolf <greywolf@unisoft.uucp>
Subject: Csh hacking -- having problems...
Keywords: How to push/fork w/o losing interrupt
Date: 12 Feb 91 18:51:26 GMT
To:       unix-wizards@sem.brl.mil
 
[ .globl    _newsfood, 512; ]
 
I'm doing a major upgrade to the Berkeley C shell (no flames, please;
I speak csh and sh fluently and have different uses for each one).  One
of the things I am implementing is a "push" builtin, which is supposed
to simply fork() and create an exact duplicate of the shell on top of itself.
 
In the older version of this shell (to which I have regrettably lost the
source), we used to do this for extended alterations of environment without
having to restart the damn thing (i.e. aliases and shell variables were
preserved).  It was easier than throwing it into a ( subshell ), and we
needed the interaction.
 
Now, never mind *why* I want to do this when there might be other solutions...
When the push command is entered, the following set of events occurs (assume
all necessary variables):
 
dopush()
{
    switch (fork()) {
    case -1:	/* error */
	setname("push");
	bferr("Couldn't fork!");
	return (1);
    case 0:	/* child */
	/* set $$ = getpid() */
	/* set process group to $$ */
	/* set tty process group to $$ */
	/* increment push level */
	return(0);
    default:	/* parent */
	wait(&exitstat);
	/* reset process group */
	/* reset terminal process group */
	return(exitstat);
    }
}
 
Now, the push() occurs fine (it forks and does all the necessary stuff).
HOWEVER:  As soon as I hit an interrupt, the pushed shell prints a prompt,
exits, and the original shell prints a prompt.
 
The thing that's confusing is that I don't know why the pushed shell is only
catching the interrupt once and then giving up.  It seems as though the
parent shell also gets the interrupt (which I didn't think would happen if
the process group gets reset).  I thought Berkeley signal handlers reset
themselves...?
 
This is a Pyramid running OSx 5.0b, under the BSD universe (essentially
BSD 4.2-and-a-half).
--
thought:  I ain't so damb dumn! | Your brand new kernel just dump core on you
war: Invalid argument           | And fsck can't find root inode 2
                                | Don't worry -- be happy...
 ...!{ucbvax,acad,uunet,amdahl,pyramid}!unisoft!greywolf
 
-----------------------------
 
From: Roy Smith <roy@alanine.phri.nyu.edu>
Subject: How to read v6 distribution tapes?
Date: 12 Feb 91 20:22:03 GMT
Sender: News System <news@phri.nyu.edu>
To:       unix-wizards@sem.brl.mil
 
 
	After the recent talk about v6 history on this group, I figured I'd
actually do something crazy and go back and look at the source to make
sure.  Unfortunately, I'm not sure how to do that!  The tape I have
consists of several RK-05 images with v6 file systems on them.  Is there
any reasonable way to read them on a 4.3BSD vax or a SunOS-3.5 system?
--
Roy Smith, Public Health Research Institute
455 First Avenue, New York, NY 10016
roy@alanine.phri.nyu.edu -OR- {att,cmcl2,rutgers,hombre}!phri!roy
"Arcane?  Did you say arcane?  It wouldn't be Unix if it wasn't arcane!"
 
-----------------------------
 
From: David Johnson <dejohnso@cs.utah.edu>
Subject: Interprocess Communication question
Date: 13 Feb 91 04:37:50 GMT
Originator: dejohnso@cs.utah.edu
To:       unix-wizards@sem.brl.mil
 
Can anyone out there help me get started learning about interprocess
communication?  Do you have any bare-bones examples of how to use
sockets and things like that?  How about helpful articles or books
to read?
 
I am hoping to try some distributed graphics and don't want to communicate
through files or anything like that.
 
Any help would be appreciated.
 
Please send e-mail to dejohnso@cs.utah.edu.
 
Oh yeah,  thanks!!!!!!!!!
 
-----------------------------
 
 
End of UNIX-WIZARDS Digest
**************************

IN% Postmaster@VAX1.Mankato.MSUS.EDU %MKVAX1.DECNET@msus1.bitnet (PMDF Mail Server) (02/15/91)

Return-path: <postmaster@VAX1.Mankato.MSUS.EDU>
Date: Thu, 14 Feb 1991 13:46 CST
From: PMDF Mail Server <Postmaster@VAX1.Mankato.MSUS.EDU>
Subject: Undeliverable mail: SMTP delivery failure
To: "MSUS1::IN%\"UNIX-WIZARDS@BRL.MIL\""@VAX1.Mankato.MSUS.EDU
Message-id: <8AD0265CE0204963@VAX1.Mankato.MSUS.EDU>

The message could not be delivered to:

Addressee: BD6@MKATT1.MANKATO.MSUS.EDU
Reason: Illegal host/domain name found.

----------------------------------------

Received: from DECNET-MAIL by VAX1.Mankato.MSUS.EDU with PMDF#10000; Thu, 14
 Feb 1991 13:44 CST
Date: Thu, 14 Feb 1991 13:44 CST
From: "MSUS1::IN%\"UNIX-WIZARDS@BRL.MIL\""@VAX1.Mankato.MSUS.EDU
Subject: UNIX-WIZARDS Digest  V12#018
To: BD6@MKATT1.MANKATO.MSUS.EDU
Message-id: <8A91244C0020523B@VAX1.Mankato.MSUS.EDU>
X-VMS-To: "Brian D. Goecke" <bd6%MKVAX1.DECNET@MSUS1.BITNET>

Return-path: <UNIX-WIZ@NDSUVM1.BITNET>
Received: from NDSUVM1.BITNET (MAILER@NDSUVM1) by MSUS1.MSUS.EDU with
 PMDF#10130; Thu, 14 Feb 1991 05:36 CST
Received: by NDSUVM1 (Mailer R2.07) id 4963; Thu, 14 Feb 91 05:34:09 CST
Date: Thu, 14 Feb 91 05:45:01 EST
From: Mike Muuss The Moderator <Unix-Wizards-Request@BRL.MIL>
Subject: UNIX-WIZARDS Digest  V12#018
Sender: Unix-Wizards Mailing List <UNIX-WIZ@NDSUVM1.BITNET>
To: "Brian D. Goecke" <bd6%MKVAX1.DECNET@MSUS1.BITNET>
Reply-to: UNIX-WIZARDS@BRL.MIL
Message-id: <4659BFF0A0001A42@MSUS1.MSUS.EDU>
X-To:         UNIX-WIZARDS@BRL.MIL

UNIX-WIZARDS Digest          Thu, 14 Feb 1991              V12#018
 
Today's Topics:
                        Re: What is sigcleanup?
                   Re: SIGCONT occurs after a SIGTERM
             Re: dynamic linking C code with ld link editor
             Re: Help!  There's a slash '/' in my filename.
                             cfreelist info
                     gettytab, entries f0, f1 & f2
              Loading and Executing Object Code at Runtime
                                Re: dup2
 Re: Stuck-up Wizards (Re: Summary and Fix for "slashes in filenames")
                       Re: Slashes in file names
 
-----------------------------------------------------------------
 
From: Root Boy Jim <rbj@uunet.uu.net>
Subject: Re: What is sigcleanup?
Date: 25 Jan 91 00:38:21 GMT
To:       unix-wizards@sem.brl.mil
 
In article <1991Jan22.153802.9869@daimi.aau.dk> kaja@daimi.aau.dk (Kaja P.
 Christiansen) writes:
>What is "sigcleanup" doing?
 
I dunno for sure, but I'll hazard a guess. It could be a mutation of
4.3BSD's sigreturn call with new bells and whistles. RTFM sez
"sigreturn allows users to atomicly unmask, switch stacks, and
return from a signal context". Since signals are more complex
than they used to be, s system call is required to exit from
them as well as to enter them. When a signal handler returns,
it executes what is known as the signal trampoline code, which
actually calls sigreturn. Setjmp/longjmp have been extended to
save and restore the signal mask as well. However, _setjmp/_longjmp
exist for speedier execution when signals are involved.
 
Now sing with me to the tune of a Beatles song:
 
	We all live in a signal trampoline,
	A signal trampoline, a signal trampoline!
 
>Kaja P. Christiansen                     Computer Science Department
>(kpchristiansen@daimi.aau.dk)            Aarhus University
>Phone: +45 86 12 71 88                   Ny Munkegade 116,
>Fax:   +45 86 13 57 25                   DK-8000 Aarhus C., Denmark
 
 
--
 
	Root Boy Jim Cottrell <rbj@uunet.uu.net>
	Close the gap of the dark year in between
 
-----------------------------
 
From: Edward Conger <conger@hpcupt1.cup.hp.com>
Subject: Re: SIGCONT occurs after a SIGTERM
Date: 12 Feb 91 22:23:14 GMT
To:       unix-wizards@sem.brl.mil
 
/ hpcupt1:comp.unix.wizards / coleman@cam.nist.gov (Sean Sheridan Coleman X5672)
 /  9:06 am  Feb 11, 1991 /
>Please explain to me why a SIGCONT is sent to a process after
>SIGTERM is sent to my process. It doesn't compute because TERM
>means to terminate the the process.
 
The distinction is that sending a signal to a process (usually|often)
is implemented by setting a bit in a flag word associated with the
"victim process".  The action of *send*ing the signal doesn't
terminate the process, rather, it says, "when next you run in the
kernel (either via a system call or a timeslice (usually ~ 1/100 sec)),
you should go handle this signal."  In the case of SIGTERM, the default
behaviour is to TERMinate.
 
Now suppose the victim process is stopped (either by job control, SIGSTOP,
or via debugging), it will NOT see the bit set in the flag word until it
runs again.  The SIGCONT gets it unstopped and it runs long enough to
terminate.
 
Your mileage (and implementation) may vary, but this is the general gist of
the problem.
 
>Thanks
 
>Sean Coleman
>coleman@bldrdoc.gov
>NIST
>Boulder, CO
>----------
 
Hope this helps,
 
-Ed.
 
===========================================================================
The above is an official statement of MeMyself & I Inc.  It should not
be interpreted to be an official statement of any other likely targets,
including, but not limited to, Hewlett-Packard Co., ACME Rockets, ACME Rubber
Bands, ACME Consolidated Mining Engineering, or the Home for Damaged Coyotes.
 
-----------------------------
 
From: Steve Alter <alter@ttidca.tti.com>
Subject: Re: dynamic linking C code with ld link editor
Date: 13 Feb 91 03:09:27 GMT
To:       unix-wizards@sem.brl.mil
 
In article <23713@netcom.COM> aed@netcom.COM (Andrew Davidson) writes:
} I am trying to fiqure out how to use the ld link editor to dynamicly link
} some C code.  Are there any refference? All I have are the man pages
} which are less than usefull for the beginer
}
} I am working on a sun workstation, but must also get this to run on a
} sys V unix(SCO ODT UNIX sysV 3.2.0).
 
This info is for SunOS (4.1, but I believe also applies to 4.0.)
 
Load the "shlib.etc" package from your distrubution media (under 4.1
the command to do this is "/usr/etc/install/add_services") and then
look in directory /usr/lib/shlib.etc at the README and Makefile files.
That stuff only describes how to build a new version of the shared libc
library, but it shows some of the basics that might be useful/needed in
building your own library.
 
Highlights:
 
-- You have to build all of your object modules (for this library) with
   the "-pic" option to generate position-independent (a.k.a.
   relocatable) code.
 
-- The Makefile uses the "-assert pure-text" option on the "ld" command
   to ensure (I believe) that everything in the library is read-only,
   i.e. no writable global data areas because read-only is a must for
   anything that is shared between anonymous users.  If you want a
   global writable buffer then you've got to create a shared-memory
   segment.
 
-- The Makefile also plays some games to ensure that the object modules
   go into the library in the correct order.  The concepts of ranlib and
   the __.SYMDEF module don't apply to shared libraries because they're
   mapped directly into the address space of the process, whereas a
   normal library is just a collection of .o files with a symbol table
   up front and .o files still have to be linked with ld.
 
Read the "ld" manual-page very carefully as it explains a lot of how
the ld and ld.so programs, the LD_LIBRARY_PATH, and the version numbers
on the /usr/lib/lib*.s[ao].* files work together.
 
My ultimate suggestion: buy a set of the manuals; there's a whole
chapter on shared libraries in there.
--
Steve Alter        <alter@ttidca.tti.com>
{philabs,psivax,pyramid,quad1,rdlvax,retix,rutgers}!ttidca!alter
Transaction Technology Inc. a subsidiary of Citicorp  (213) 450-9111 x2541
 
-----------------------------
 
From: Greg Kemnitz <kemnitz@gaia.berkeley.edu>
Subject: Re: dynamic linking C code with ld link editor
Date: 13 Feb 91 20:04:48 GMT
Sender: USENET Administrator <usenet@agate.berkeley.edu>
To:       unix-wizards@sem.brl.mil
 
I had this problem for several months until (after much hacking) I got my
dynamic loaders to work with Postgres.  It is a rather different idea than
shared libraries - the idea is to load and execute a function (whose name is
unknown beforehand) in an object file given by the user.  It is quite tricky,
since you have to know about the a.out format, and getting it to work requires
using lots of undocumented or almost undocumented features and options
(especially on DECstations).  Also, Postgres had to be able to unload and
reload a user function (since the user may have changed it) which is easy but
not entirely straightforward.
 
I have two versions - one for Sun 3's, Sparcs, and Sequents, and another version
for DECstations running Ultrix >= 4.0.  They all use "ld -A", but there's lots
of stuff you need to know that you only discover after much inspection.  Nobody
has a man page that is at all descriptive on "ld -A"'s use.  If there's
interest, I'll post them to the net.
 
 -----------------------------------------------------------------------
Greg Kemnitz                  |      "I ran out of the room - I
Postgres Chief Programmer     |      didn't want to be killed by a pile
278 Cory Hall, UCB            |      of VMS manuals" :-)
(415) 642-7520                |
kemnitz@postgres.berkeley.edu |      --A friend at DEC Palo Alto in the Quake
 
-----------------------------
 
From: s082@brems.ii.uib.no
Subject: Re: Help!  There's a slash '/' in my filename.
Date: 13 Feb 91 12:02:01 GMT
Sender: Usenet posting account <usenet@eik.ii.uib.no>
To:       unix-wizards@sem.brl.mil
 
 
There seems to be a rather lengthy discussion going on about slashes in
filenames,
how to get them there, and whether to ask questions about them...
Just one thing: Why would anyone want a slash (or any such character) a
filename in the first place?
 
-km
 
-----------------------------
 
From: John F Haugh II <jfh@rpp386.cactus.org>
Subject: cfreelist info
Date: 13 Feb 91 16:45:41 GMT
X-Clever-Slogan: Recycle or Die.
To:       unix-wizards@sem.brl.mil
 
in various system v's the cblock freelist is declared
something like
 
struct chead cfreelist;
 
and (struct chead) is
 
struct chead {
	struct	cblock	*c_next;
	int	c_size;
	int	c_flag;
}
 
what the hell is cfreelist.c_size =supposed= to contain?  it
sure doesn't contain the total number of characters available
on the cblock freelist right now.  my x.29 tty driver thanks
you ...
 
ps - no fair peeking at the source code.
--
John F. Haugh II                             UUCP: ...!cs.utexas.edu!rpp386!jfh
Ma Bell: (512) 832-8832                           Domain: jfh@rpp386.cactus.org
"I've never written a device driver, but I have written a device driver manual"
                -- Robert Hartman, IDE Corp.
 
-----------------------------
 
From: Thomas Omerzu <omerzu@quando.quantum.de>
Subject: gettytab, entries f0, f1 & f2
Date: 13 Feb 91 20:13:17 GMT
To:       unix-wizards@sem.brl.mil
 
 
A little but nasty problem:
 
All bsd-based Unix-Implementations of getty (at least as far as known to me)
support gettytab attributes f0, f1 and f2.
 
According to TFM(gettytab) they take numeric values, where f0, f1 & f2
represent the tty mode flags "to write messages", "to read login name",
and "to leave terminal in".
 
"... Terminal modes to be used for the output of the message,
for input of the login name, and to leave ther terminal set as upon
completion, are derived from the Boolean flags specified. If the derivation
should prove inadequate, any (or all) of these three may be overridden
with one of the f0, f1, or f2 numeric specifications, which can be
used to specify (usually in octal, with a leading 0) the exact values
of the flags. Local (new tty) flags are set in the top 16 bits of this
(32-bit) value. ..."  [ From Dec Ultrix V4.0 Ref. Man. Vol 6 ]
 
 
Now my question: how do the terminal mode flags (as know from termio or stty)
correspond to the bits in f0 (or f1, f2)?
 
Obviously it cannot be a 1:1 corresponency, since the struct termio
contains 4 short values (c_iflag, c_oflag, c_cflag, c_lflag),
or - in other words - 64 bits.
 
Any ideas/experiences anyone?
 
I was trying to use this on a DECstation 5000/200 running Ultrix 4.0,
although other vendors seem not to supply much more information.
 
 
Thanks in advance for your help,
	Thomas
 
 
 
--
*--------------------------------------------------------------------------*
   Thomas Omerzu.       Internet: omerzu@quantum.de
    Quantum GmbH        Bitnet:   omerzu%quando@UNIDO.bitnet
  Dortmund,Germany      UUCP:     ...!unido!quando!omerzu
 
-----------------------------
 
From: Ian Flanigan <flan@cics.berkeley.edu>
Subject: Loading and Executing Object Code at Runtime
Keywords: help, load, run, .o, LISP
Date: 13 Feb 91 21:27:04 GMT
Sender: USENET News System <news@cec1.wustl.edu>
To:       unix-wizards@sem.brl.mil
 
Hi,
 
I tried posting this to comp.unix.questions first, but as I got no answer
I figured this must be a Wizard level question:
 
I'm wondering how to load an object file (my_functions.o) at execution
time and execute a function contained therein.  I know this is possible
since many flavors of LISP allow you to compile your functions and then
load the compiled versions later.
 
If it's in TFM, could someone point me in the right direction, or, if it's
trivially simple, could someone please explain how to go about it?
 
Thanks much.
 
--
Ian Flanigan
 
flan@cics.wustl.edu              "You can never have too many napkins."
wucs1.wustl.edu!cics!flan@uucp
 
-----------------------------
 
From: Doug Gwyn <gwyn@smoke.brl.mil>
Subject: Re: dup2
Date: 13 Feb 91 22:41:02 GMT
To:       unix-wizards@sem.brl.mil
 
In article <122373@uunet.UU.NET> rbj@uunet.UU.NET (Root Boy Jim) writes:
-In article <15136@smoke.brl.mil> gwyn@smoke.brl.mil (Doug Gwyn) writes:
->/*
->	dup2 -- 7th Edition UNIX system call emulation for UNIX System V
->*/
-Do you mean that V7 had dup2 but System V doesn't?
-And what about systems that don't have fcntl?
 
Geez, what do you think the comment means, anyway?
 
-----------------------------
 
From: David Elliott <dce@smsc.sony.com>
Subject: Re: Stuck-up Wizards (Re: Summary and Fix for "slashes in filenames")
Date: 14 Feb 91 01:35:27 GMT
To:       unix-wizards@sem.brl.mil
 
In article <=H_&Z9#@rpi.edu> rodney@sun.ipl.rpi.edu (Rodney Peck II) writes:
>and finally, just because a question comes back again and again, doesn't
>mean that all the wrong answers have to be dragged out again.  that's what
>the faq is for -- if someone wants to say "hey I read these answers in
>the faq, and I didn't see this idea .... why won't this work?" -- that,
>in my opinon, would be fine.
 
I certainly agree with you, but let me make a suggestion.
 
Instead of people complaining about people sending out wrong answers,
or even answers at all, let's all try doing this:
 
	If someone posts a frequently-asked question, mail them a copy
	of the FAQ posting, and point out that the answer is there.
 
	If someone posts an answer, be it correct or incorrect, mail
	them a copy of the FAQ posting to remind them that the answer
	is already available to everyone in a consistent format.
 
I did this myself for a while, made some friends in the first case, and
got some pretty interesting excuses in the second.
 
-----------------------------
 
From: Steve Summit <scs@adam.mit.edu>
Subject: Re: Slashes in file names
Date: 14 Feb 91 07:05:12 GMT
Sender: News system <news@athena.mit.edu>
To:       unix-wizards@sem.brl.mil
 
I begin to understand why people have such passionately awful
things to say about NFS.
 
As far as I'm concerned, if the NFS server code can create an
illegal file (where "illegal" is defined by the host on which the
server is running), then that's a bug in the NFS server, period.
If the protocol doesn't include an error return of "I can't
create a file of that name" (not surprising; <errno.h> doesn't
define that specific error either, although it probably should),
then it should just say something halfway like "no such file or
directory."
 
If the client can help out by trying not to ask for illegal files
in the first place, that's fine; but in the final analysis the
server has got to protect itself.  Having the client not ask for
illegal files is never going to work perfectly, anyway: even if a
negotiation is defined by which the client can learn which
characters are illegal, some operating system somewhere is going
to have rules that can't be encoded that simply.
 
Has anyone ever considered modifying namei so that it essentially
checks to see if the current path character matches a target
filename character *before* checking to see if the current path
character is a '/'?  That would make the filesystem robust
against inadvertent /'s in filenames, because unlink("a/b/c")
would in fact unlink a file called "b/c" in directory "a", if one
somehow existed.
 
(To be sure, there would be idiosyncrasies associated with such
an algorithm.  In the above example, if directory "a" also
contained a subdirectory "b" as well as a file "b/c" the behavior
would depend on which came first, or something.  Still, it might
be a nice escape hatch.  Note that by only attempting to match
existing files in this way, it would still never create a
filename with a slash.)
 
                                            Steve Summit
                                            scs@adam.mit.edu
 
-----------------------------
 
 
End of UNIX-WIZARDS Digest
**************************

IN% Postmaster@VAX1.Mankato.MSUS.EDU %MKVAX1.DECNET@msus1.bitnet (PMDF Mail Server) (02/15/91)

Return-path: <postmaster@VAX1.Mankato.MSUS.EDU>
Date: Thu, 14 Feb 1991 14:07 CST
From: PMDF Mail Server <Postmaster@VAX1.Mankato.MSUS.EDU>
Subject: Undeliverable mail: SMTP delivery failure
To: "MSUS1::IN%\"Unix-Wizards@BRL.MIL\""@VAX1.Mankato.MSUS.EDU
Message-id: <8DB789FAE0203727@VAX1.Mankato.MSUS.EDU>

The message could not be delivered to:

Addressee: BD6@MKATT1.MANKATO.MSUS.EDU
Reason: Illegal host/domain name found.

----------------------------------------

Received: from DECNET-MAIL by VAX1.Mankato.MSUS.EDU with PMDF#10000; Thu, 14
 Feb 1991 14:05 CST
Date: Thu, 14 Feb 1991 14:05 CST
From: "MSUS1::IN%\"Unix-Wizards@BRL.MIL\""@VAX1.Mankato.MSUS.EDU
Subject: Re: Wizard-level questions (go4th & thread your primitives)
To: BD6@MKATT1.MANKATO.MSUS.EDU
Message-id: <8D7B99BDE020544F@VAX1.Mankato.MSUS.EDU>
X-VMS-To: "Brian D. Goecke" <bd6%MKVAX1.DECNET@MSUS1.BITNET>

Return-path: <UNIX-WIZ@NDSUVM1.BITNET>
Received: from NDSUVM1.BITNET (MAILER@NDSUVM1) by MSUS1.MSUS.EDU with
 PMDF#10130; Thu, 14 Feb 1991 14:04 CST
Received: by NDSUVM1 (Mailer R2.07) id 2307; Thu, 14 Feb 91 14:02:41 CST
Date: Thu, 14 Feb 91 13:58:21 EST
From: DAVID@PENNDRLS.UPENN.EDU
Subject: RE: Wizard-level questions (go4th & thread your primitives)
Sender: Unix-Wizards Mailing List <UNIX-WIZ@NDSUVM1.BITNET>
To: "Brian D. Goecke" <bd6%MKVAX1.DECNET@MSUS1.BITNET>
Reply-to: Unix-Wizards@BRL.MIL
Message-id: <8D3F0ACFE00046CB@MSUS1.MSUS.EDU>
X-To:         unix-wizards%sem.brl.mil@remote.dccs.upenn.edu

For FORTH written in C, try Mitch Bradley of Bradley ForthWorks
(wmb@MITCH.ENG.SUN.COM), who also has a SUN FORTH (by the way, he is
also responsible for the FORTH in the Sparcstation boot proms) as well
as FORTHs for a number of other platforms.  Prices are very reasonable
(circa $50, I think).  If you can't afford anything but freeware, try
Mikael Patel (eru!hagbard!sunic!liuida!mip@BLOOM-BEACON.MIT.EDU is the
only address I have for him and I've never tried to use it) who has
constructued TILE FORTH to run on Sun's and other Unix platforms.
Actually, I don't know for sure that Mikael is giving away the current
version, but there was at least one version that he posted to ForthNet.
(ForthNet, by the way, is a virtual network of Forth mailing lists,
BBSs, and other stuff with connections to the BITNET FIGI-L, usenet
comp.language.forth (I think that is the right group) and to the Forth
roundtable on Genie.  If you like FORTH, it is worth getting connected
to; right now the hot topic is the upcomming ANS FORTH dpANS.)
 
-- R. David Murray    (DAVID@PENNDRLS.UPENN.EDU)
 
P.S.: I tried to mail this before I posted it, but the mail bounced.
Hope you wizards assembled don't mind too much, this not being a
unix-wizardly subject . . .

IN% Postmaster@VAX1.Mankato.MSUS.EDU %MKVAX1.DECNET@msus1.bitnet (PMDF Mail Server) (02/18/91)

Return-path: <postmaster@VAX1.Mankato.MSUS.EDU>
Date: Sat, 16 Feb 1991 14:12 CST
From: PMDF Mail Server <Postmaster@VAX1.Mankato.MSUS.EDU>
Subject: Undeliverable mail: SMTP delivery failure
To: "MSUS1::IN%\"UNIX-WIZARDS@BRL.MIL\""@VAX1.Mankato.MSUS.EDU
Message-id: <20B31A6AA0207F88@VAX1.Mankato.MSUS.EDU>

The message could not be delivered to:

Addressee: BD6@MKATT1.MANKATO.MSUS.EDU
Reason: Illegal host/domain name found.

----------------------------------------

Received: from DECNET-MAIL by VAX1.Mankato.MSUS.EDU with PMDF#10000; Fri, 15
 Feb 1991 05:57 CST
Date: Fri, 15 Feb 1991 05:57 CST
From: "MSUS1::IN%\"UNIX-WIZARDS@BRL.MIL\""@VAX1.Mankato.MSUS.EDU
Subject: UNIX-WIZARDS Digest  V12#019
To: BD6@MKATT1.MANKATO.MSUS.EDU
Message-id: <1267ABF5C0206670@VAX1.Mankato.MSUS.EDU>
X-VMS-To: "Brian D. Goecke" <bd6%MKVAX1.DECNET@MSUS1.BITNET>

Return-path: <UNIX-WIZ@NDSUVM1.BITNET>
Received: from NDSUVM1.BITNET (MAILER@NDSUVM1) by MSUS1.MSUS.EDU with
 PMDF#10130; Fri, 15 Feb 1991 05:55 CST
Received: by NDSUVM1 (Mailer R2.07) id 1371; Fri, 15 Feb 91 05:51:46 CST
Date: Fri, 15 Feb 91 05:45:06 EST
From: Mike Muuss The Moderator <Unix-Wizards-Request@BRL.MIL>
Subject: UNIX-WIZARDS Digest  V12#019
Sender: Unix-Wizards Mailing List <UNIX-WIZ@NDSUVM1.BITNET>
To: "Brian D. Goecke" <bd6%MKVAX1.DECNET@MSUS1.BITNET>
Reply-to: UNIX-WIZARDS@BRL.MIL
Message-id: <1230A50BC0004B3E@MSUS1.MSUS.EDU>
X-To:         UNIX-WIZARDS@BRL.MIL

UNIX-WIZARDS Digest          Fri, 15 Feb 1991              V12#019
 
Today's Topics:
Really serious security hole in Microport Unix (Re: SECURITY BUG IN INTERACTIVE
 UNIX SYSV386)
                   Re: SIGCONT occurs after a SIGTERM
             Re: Help!  There's a slash '/' in my filename.
                 re: How to read v6 distribution tapes?
                       Re: Slashes in file names
            Re: Loading and Executing Object Code at Runtime
                         Some Wizardry in need
V7/BSD vs. S3/S5/POSIX tty drivers (was Re: gettytab, entries f0, f1 & f2)
             Re: dynamic linking C code with ld link editor
                            SCO Mailing List
                  How to get remote ethernet address?
                             Counting FLOPS
                       Putenv() & Getenv() Bug ?
 
-----------------------------------------------------------------
 
From: Bill <bill@franklin.com>
Subject: Really serious security hole in Microport Unix (Re: SECURITY BUG IN
 INTERACTIVE UNIX SYSV386)
Date: 13 Feb 91 17:03:16 GMT
Followup-To: comp.unix.sysv386
To:       unix-wizards@sem.brl.mil
 
[I've crossposted this widely because there should be a lot of
people who care about this; however, I've directed followups to
comp.unix.sysv386.]
 
Interactive's Unix isn't the only one with a really serious
security hole. Microport 3.0e, and possibly others from
Microport, has an equally awful hole and it is unfixable without
kernel hacking. Microport knows about it since I told them about
it; I don't know what, if anything, they are going to do about it.
 
If anyone out there wants information on this bug, I will send it
to you. Also, I have created a replacement for the offending
kernel module of 3.0e and can send that. However, I will only
send these to root@yoursite and only if I think that the path to
your site is reasonably secure. If you are at the end of an
insecure (in my opinion, and I won't change it) path and you still
want this information, I will arrange a direct uucp connection to
send it. If that won't work, I'll try to arrange something.
 
I won't immediately describe the bug on the net in order to give
admins a chance to fix their systems before the crackers get a
whack at it. I can't even describe the general area that this bug
compromises without making it too easy to trigger it.
 
In a few weeks, after the expected deluge of "what *is* that bug"
messages, I will post the informational message I'm sending out.
 
--
 
Consider said various vicious and incendiary comments about brain
dead programmers and inadequate QA. These bugs should *never*
have made it out the door and, having done so, they should never
have lasted as long as they have. Of course, we can't blame the
guys at Interactive and Microport too much; they have had the
example (and largely uncomment code) of those guys who gave us
the still unfixed (or so I hear) System V inode bug.
 
-----------------------------
 
From: Heiko Blume <src@scuzzy.in-berlin.de>
Subject: Re: SIGCONT occurs after a SIGTERM
Date: 13 Feb 91 21:31:10 GMT
To:       unix-wizards@sem.brl.mil
 
richard@locus.com (Richard M. Mathews) writes:
>The solution is don't catch SIGCONT.  Your SIGTSTP handler knows when
>the program resumes anyway because the line after the "kill" which
>caused it to suspend itself will not be reached until the program is
>resumed.
 
which fails miserably when you get the uncatchable SIGSTOP.
*yes*, i do use SIGSTOP, there are programs that disable
the SIGTSTP feature, and i won't let those go unsuspended.
--
      Heiko Blume <-+-> src@scuzzy.in-berlin.de <-+-> (+49 30) 691 88 93
                    public source archive [HST V.42bis]:
        scuzzy Any ACU,f 38400 6919520 gin:--gin: nuucp sword: nuucp
                     uucp scuzzy!/src/README /your/home
 
-----------------------------
 
From: Steve Alter <alter@ttidca.tti.com>
Subject: Re: Help!  There's a slash '/' in my filename.
Date: 14 Feb 91 05:41:03 GMT
To:       unix-wizards@sem.brl.mil
 
At last, a package that avoids this problem altogether!
 
I'm installing and testing the uShare software from Information
Presentation Technologies, Inc.  It provides, among other things, an
AppleShare Server daemon for SunOS systems.  I don't know if anybody
else does this (yet) but uShare prevents the '/' from getting into the
filename in the first place.
 
When you create a file from a Mac in a uShare AppleShare volume, any
characters that Unix might not like (slashes, control characters, bytes
with the 8th bit, etc.) are converted into some strange notation
(possibly hexadecimal digits) and prefixed with a ':'.  Since the colon
is invalid as part of a Mac filename (it's used to separate folder
names in a path and the "Save File" dialog either ignores it or turns
it into a hyphen) it's certainly available to protect the filename on
the Unix side.
--
Steve Alter        <alter@ttidca.tti.com>
{philabs,psivax,pyramid,quad1,rdlvax,retix,rutgers}!ttidca!alter
Transaction Technology Inc. a subsidiary of Citicorp  (213) 450-9111 x2541
 
-----------------------------
 
From: Barry Shein <bzs@world.std.com>
Subject: Re: Help!  There's a slash '/' in my filename.
Date: 14 Feb 91 09:33:17 GMT
Sender: Barry Shein <bzs@world.std.com>
To:       unix-wizards@sem.brl.mil
 
 
From: s082@brems.ii.uib.no
>Just one thing: Why would anyone want a slash (or any such character) a
>filename in the first place?
 
Perhaps the file name was in Norwegian? :-)
 
(it's usually another machine, like a macintosh, using NFS to the unix
system and creating a file name like "Expense 12/2/91" which is legal
and common on macs.)
 
Doesn't norwegian use o-slash and all that?
--
        -Barry Shein
 
Software Tool & Die    | bzs@world.std.com          | uunet!world!bzs
Purveyors to the Trade | Voice: 617-739-0202        | Login: 617-739-WRLD
 
-----------------------------
 
From: Dennis Ritchie <dmr@alice.att.com>
Subject: re: How to read v6 distribution tapes?
Date: 14 Feb 91 06:05:35 GMT
To:       unix-wizards@sem.brl.mil
 
Roy Smith wondered about how to look at v6, which exist on tape as
RK05 disk images.  Here's how we do it.  It's instructive of
something--I'm not sure quite what, but it makes an interesting demo,
and it is a useful way to keep these archives.
 
We transferred the disk images to big single files.  Norman Wilson
wrote a file server that understands the v6 disk format (512-byte disk
blocks, 32-byte inodes, 16-bit disk addresses).  Thus we can mount
this disk image as a file system and poke around in it.
 
Incidentally, we still have a few vax 11/750s, with the pdp-11
compatibility feature.  So, from such a machine I can do
 
	cd /n/bowell/usr/src/history/v6/bin/bin   # move to v6 /bin
	compat sh				  # start v6 shell
 
and get a `%' prompt.  These commands change to a directory on another
machine, which contains an interpreted Sixth Edition file system, and
run the Sixth Edition shell.  Many of the commands there work.  E.g.
 
  % ./size sh
  4992+880+1408=7280 (16160)
  % ./date
  Thu Feb 14 00:46:32 EST 1991
  % ./dc
  10k2vp
  1.4142135623
 
Doing this induces a somewhat creepy feeling.
 
	Dennis Ritchie
	dmr@research.att.com
	att!research!dmr
 
-----------------------------
 
From: Sean Eric Fagan <sef@kithrup.com>
Subject: Re: Slashes in file names
Date: 14 Feb 91 09:18:53 GMT
To:       unix-wizards@sem.brl.mil
 
In article <1991Feb14.070512.24190@athena.mit.edu> scs@adam.mit.edu writes:
>If the protocol doesn't include an error return of "I can't
>create a file of that name" (not surprising; <errno.h> doesn't
>define that specific error either, although it probably should),
 
It does.  BSD has been using EINVAL to indicate an illegal filename (8-bit
set in one or more of the characters), I believe.  Thus, I think that's the
error that should have been used, if possible.
 
--
Sean Eric Fagan  | "I made the universe, but please don't blame me for it;
sef@kithrup.COM  |  I had a bellyache at the time."
 -----------------+           -- The Turtle (Stephen King, _It_)
Any opinions expressed are my own, and generally unpopular with others.
 
-----------------------------
 
From: Barry Shein <bzs@world.std.com>
Subject: Re: Loading and Executing Object Code at Runtime
Date: 14 Feb 91 09:43:21 GMT
Sender: Barry Shein <bzs@world.std.com>
To:       unix-wizards@sem.brl.mil
 
 
>I'm wondering how to load an object file (my_functions.o) at execution
>time and execute a function contained therein.  I know this is possible
>since many flavors of LISP allow you to compile your functions and then
>load the compiled versions later.
>
>If it's in TFM, could someone point me in the right direction, or, if it's
>trivially simple, could someone please explain how to go about it?
 
It's not trivially simple by any means and can be quite subtle to get
right (e.g. loading multiple functions which reference each other and
external functions.)
 
It also is heavily dependent on the particular version of Unix, this
is not portable, although one solution might work on several different
unixes. BSD-based systems will use "ld -A" for starters. Encore had a
routine to do this which made it relatively easy (dynaload(), which I
think originated at AT&T but was never made part of the regular
distribution? Or do I say this every two years when it comes up and
someone corrects me that it's original to Encore? Anyhow.)
 
In theory you should be able to do this on any Unix system, barring
hideous ideosyncractic restrictions, it's mostly a matter of how much
of a link-editor you might have to implement yourself. For starters,
if you had a trivial routine that had no external references you can
usually just read it into a malloc'd array of bytes from the .o and
jump to it.  It's the external references that make this harder than
that, you have to resolve the externals against any which are already
in the running image (e.g. printf) and load in any externals from the
libraries (e.g. libc.a) which aren't.
 
Your best bet is to find a piece of code which does this and read it.
KCL does this and is available in source from various FTP sources.
--
        -Barry Shein
 
Software Tool & Die    | bzs@world.std.com          | uunet!world!bzs
Purveyors to the Trade | Voice: 617-739-0202        | Login: 617-739-WRLD
 
-----------------------------
 
From: Melinda Shore <shore@mtxinu.com>
Subject: Re: Loading and Executing Object Code at Runtime
Date: 14 Feb 91 18:29:25 GMT
To:       unix-wizards@sem.brl.mil
 
In article <BZS.91Feb14044321@world.std.com> bzs@world.std.com (Barry Shein)
 writes:
>In theory you should be able to do this on any Unix system, barring
>hideous ideosyncractic restrictions
 
A quite widespread hideous idiosyncratic restriction is that on
some architectures, notably the 386, you can't execute out of data
space.  It's sometimes possible to work around it by playing games
with remapping memory, but only if you have kernel support (as with,
say, Mach).
--
               Software longa, hardware brevis
Melinda Shore                                 shore@mtxinu.com
mt Xinu                              ..!uunet!mtxinu.com!shore
 
-----------------------------
 
From: Suresh Subramanian <suresh@lama.enet.dec.com>
Subject: Some Wizardry in need
Keywords: Sockets, Signals.
Date: 14 Feb 91 18:54:26 GMT
Sender: newsdaemon@shlump.nac.dec.com
To:       unix-wizards@sem.brl.mil
 
 
    The scenario goes like this
 
      if  (!fork()) {
        fd = socket(.....); /* Unix domain */
        bind and listen for connection
         accept(...)
          close(0) dup2(fd,0);
          close(1); dup2(fd,1);
          close(2); dup2(fd,2);
         execl("tip", "tip", args, (char *)0);   /*  standard unix tip, */
     } else {
         sock = socket(...)
        connect(...);
        parent process goes on and exits.
    }
(SIGCLD is also installed for notifying child's death)
 
   The main program is kind of a supervisor. Keeps waiting for user
input and does appropriate
    actions.  The problem I am facing is this:-
 
   1) When a user wants to login to a another machine he calls the above
mentioned function.
         I go ahead and exec tip and wait for tip to make the connection
and send me a "login:"
      prompt. I get it and all goes well.
 
      But if the number dialled by tip is a lat then  I will not
      get the standard login prompt. But instead I will get the LAT
prompt and tip will be waiting
      for input from the user. Now the supervisor (that's me) should
know that I have to get the
      input from the user and send it to tip.  But  I don't know that
since I did not get the standard
      "login: " prompt but a LAT prompt. I cannot forsee all possible
lat prompts.
 
      An elegant solution would be to get signal from tip, when it is
waiting to do IO.  I know there
      is SIGIO to do that. But I have execed tip within a child process.
So the function address that
      I pass to signal system call before execing tip is now meaningless
within the tip program.
 
       A solution is to modify tip  to send SIGIO. But is there any
other way to get the job done?
 
Many Thanks for any insight
 
Suresh
 
 
-----------------------------
 
From: Guy Harris <guy@auspex.auspex.com>
Subject: V7/BSD vs. S3/S5/POSIX tty drivers (was Re: gettytab, entries f0, f1 &
 f2)
Date: 14 Feb 91 21:28:32 GMT
Followup-To: comp.unix.programmer
To:       unix-wizards@sem.brl.mil
 
(Not really a wizard-level question these days, and not really involved
with UNIX internals, and not Ultrix-specific; this long discourse should
probably be stuck in an FAQ list some day, at least until the POSIX tty
driver conquers the UNIX world and we can all *finally* forget about the
V7 driver and its descendants....)
 
>All bsd-based Unix-Implementations of getty (at least as far as known to me)
>support gettytab attributes f0, f1 and f2.
>
>According to TFM(gettytab) they take numeric values, where f0, f1 & f2
>represent the tty mode flags "to write messages", "to read login name",
>and "to leave terminal in".
>
>"... Terminal modes to be used for the output of the message,
>for input of the login name, and to leave ther terminal set as upon
>completion, are derived from the Boolean flags specified. If the derivation
>should prove inadequate, any (or all) of these three may be overridden
>with one of the f0, f1, or f2 numeric specifications, which can be
>used to specify (usually in octal, with a leading 0) the exact values
>of the flags. Local (new tty) flags are set in the top 16 bits of this
>(32-bit) value. ..."  [ From Dec Ultrix V4.0 Ref. Man. Vol 6 ]
>
>Now my question: how do the terminal mode flags (as know from termio or stty)
>correspond to the bits in f0 (or f1, f2)?
>
>Obviously it cannot be a 1:1 corresponency, since the struct termio
>contains 4 short values (c_iflag, c_oflag, c_cflag, c_lflag),
>or - in other words - 64 bits.
>
>Any ideas/experiences anyone?
 
There are two general flavors of UNIX terminal drivers: "V7ish" and
"System III"ish.  (We ignore "V6ish" terminal drivers, as they're really
ancient and obsolete.)
 
"V7ish" terminal drivers have the "ioctl" functions TIOCGETP,
TIOCSETP, TIOCSETN, TIOCGETC, and TIOCSETC, and may have other functions.
TIOCGETP, TIOCSETP, and TIOCSETN use "struct sgtty", which includes the
member "sg_flags", which is a "short", generally 16 bits.
 
Some systems with "V7ish" terminal drivers have the functions TIOCLBIS,
TIOCLBIC, TIOCLSET, and TIOCLGET, which use a "local mode word", with 16
bits.
 
"System III"ish terminal drivers have one or more of:
 
	the "ioctl" functions TCGETA, TCSETA, TCSETAW, and TCSETAF;
 
	the "ioctl" functions TCGETS, TCSETS, TCSETSW, and TCSETSF;
 
	the POSIX functions "tcgetattr()" and "tcsetattr()".
 
TCGETA, TCSETA, TCSETAW, and TCSETAF use "struct termio", which includes
the members "c_iflag", "c_oflag", "c_cflag", and "c_lflag"; in "struct
termio", they are all "unsigned short", generally 16 bits.
 
TCGETS, TCSETS, TCSETSW, and TCSETSF, as well as "tcgetattr()" and
"tcsetattr()", use "struct termios", which also includes the members
"c_iflag", "c_oflag", "c_cflag", and "c_lflag"; in "struct termios",
they are all "unsigned long", or "tcflag_t", generally 32 bits.
 
The "f0", "f1", and "f2" flags in "gettytab" are the 16 bits from
"sgtty.sg_flags", plus the 16 bits from the "local mode word", as
described above (the "local mode word" flags are in the upper 16 bits).
 
Some systems support both interfaces, either by some subterfuge such as
having multiple line disciplines, or by translating one style of "ioctl"
into another.  SunOS 4.x and S5R4 do the latter; they support a "System
III"ish terminal driver as their native tty driver, with a streams
module that translates "V7ish" "ioctl"s into "System III"ish "ioctl"s.
The underlying "System III"ish tty driver has been extended to support a
bunch of BSDish features.
 
Here's stuff from the manual page for that streams module, which gives
some indication of how the modes are mapped.  Note that *NOT* all
systems with "System III"ish tty drivers have all the modes described
below; if your system doesn't document it, it probably doesn't have it.
Some fairly old systems with "V7ish" tty drivers may not have all the
BSD features listed either.
 
     The basic ioctl calls use the sgttyb  structure  defined  by
     <sys/ioctl.h>:
 
          struct sgttyb {
               char sg_ispeed;
               char sg_ospeed;
               char sg_erase;
               char sg_kill;
               short sg_flags;
          };
 
     The sg_ispeed and sg_ospeed fields describe  the  input  and
     output  speeds  of the device, and reflect the values in the
     c_cflag field of the termio  structure.   The  sg_erase  and
     sg_kill  fields  of the argument structure specify the erase
     and kill characters respectively, and reflect the values  in
     the VERASE and VKILL members of the c_cc field of the termio
     structure.
 
     The  sg_flags  field  of  the  argument  structure  contains
     several  flags  that determine the system's treatment of the
     terminal.  They are mapped into flags in fields of the  ter-
     minal state, represented by the termio structure.
 
     Delay type 0 is always mapped into the equivalent delay type
     0 in the c_oflag field of the termio structure.  Other delay
     mappings are performed as follows:
 
          sg_flags    c_oflag
          BS1         BS1
          FF1         VT1
          CR1         CR2
          CR2         CR3
          CR3         not supported
          TAB1        TAB1
          TAB2        TAB2
          XTABS       TAB3
          NL1         ONLRET|CR1
          NL2         NL1
 
     If previous  TIOCLSET  or  TIOCLBIS  ioctl  calls  have  not
     selected  LITOUT  or  PASS8  mode,  and  if  RAW mode is not
     selected, the ISTRIP flag is set in the c_iflag field of the
     termio  structure,  and the EVENP and ODDP flags control the
     parity of characters sent to the terminal and accepted  from
     the terminal:
 
     0           Parity is not  to  be  generated  on  output  or
                 checked  on  input; the character size is set to
                 CS8 and  the  PARENB  flag  is  cleared  in  the
                 c_cflag field of the termio structure.
 
     EVENP       Even parity characters are to  be  generated  on
                 output  and accepted on input; the INPCK flag is
                 set in the c_iflag field of  the  termio  struc-
                 ture,  the  character size is set to CS7 and the
                 PARENB flag is set in the c_cflag field  of  the
                 termio structure.
 
     ODDP        Odd parity characters are  to  be  generated  on
                 output  and accepted on input; the INPCK flag is
                 set in the c_iflag field, the character size  is
                 set  to  CS7 and the PARENB and PARODD flags are
                 set in the c_cflag field of  the  termio  struc-
                 ture.
 
     EVENP|ODDP  Even parity characters are to  be  generated  on
                 output and characters of either parity are to be
                 accepted on input; the INPCK flag is cleared  in
                 the  c_iflag field, the character size is set to
                 CS7 and the PARENB flag is set  in  the  c_cflag
                 field of the termio structure.
 
     The RAW flag disables all output processing (the OPOST  flag
     in  the  c_oflag  field,  and  the XCASE flag in the c_lflag
     field, are cleared in the termio structure) and  input  pro-
     cessing (all flags in the c_iflag field other than the IXOFF
     and IXANY flags are cleared in  the  termio  structure).   8
     bits  of data, with no parity bit, are accepted on input and
     generated on output; the character size is set  to  CS8  and
     the PARENB and PARODD flags are cleared in the c_cflag field
     of the termio structure.  The  signal-generating  and  line-
     editing control characters are disabled by clearing the ISIG
     and ICANON flags in the c_lflag field of the  termio  struc-
     ture.
 
     The CRMOD flag turn input  RETURN  characters  into  NEWLINE
     characters,  and  output and echoed NEWLINE characters to be
     output as a RETURN followed by a LINEFEED. The ICRNL flag in
     the  c_iflag  field,  and  the  OPOST and ONLCR flags in the
     c_oflag field, are set in the termio structure.
 
     The LCASE flag maps upper-case letters in the ASCII  charac-
     ter  set to their lower-case equivalents on input (the IUCLC
     flag is set in  the  c_iflag  field),  and  maps  lower-case
     letters  in  the  ASCII  character  set  to their upper-case
     equivalents on output (the OLCUC flag is set in the  c_oflag
     field).   Escape  sequences  are accepted on input, and gen-
     erated on output, to handle  certain  ASCII  characters  not
     supported  by  older terminals (the XCASE flag is set in the
     c_lflag field).
 
     Other flags are directly  mapped  to  flags  in  the  termio
     structure:
 
          sg_flags    flags in termio structure
          CBREAK      complement of ICANON in c_lflag field
          ECHO        ECHO in c_lflag field
          TANDEM      IXOFF in c_iflag field
 
     Another structure associated with  each  terminal  specifies
     characters  that  are  special in both the old Version 7 and
     the newer 4BSD terminal interfaces.  The following structure
     is defined by <sys/ioctl.h>:
 
          struct tchars {
               char t_intrc;  /* interrupt */
               char t_quitc;  /* quit */
               char t_startc; /* start output */
               char t_stopc;  /* stop output */
               char t_eofc;   /* end-of-file */
               char t_brkc;   /* input delimiter (like nl) */
          };
 
     The characters are mapped to members of the  c_cc  field  of
     the termio structure as follows:
 
          tchars      c_cc index
          t_intrc     VINTR
          t_quitc     VQUIT
          t_startc    VSTART
          t_stopc     VSTOP
          t_eofc      VEOF
          t_brkc      VEOL
 
     Also associated with each terminal is  a  local  flag  word,
     specifying  flags  supported by the new 4BSD terminal inter-
     face.  Most of these flags are directly mapped to  flags  in
     the termio structure:
 
          local flags flags in termio structure
          LCRTBS      not supported
          LPRTERA     ECHOPRT in the c_lflag field
          LCRTERA     ECHOE in the c_lflag field
          LTILDE      not supported
          LTOSTOP     TOSTOP in the c_lflag field
          LFLUSHO     FLUSHO in the c_lflag field
          LNOHANG     CLOCAL in the c_cflag field
          LCRTKIL     ECHOKE in the c_lflag field
          LCTLECH     CTLECH in the c_lflag field
          LPENDIN     PENDIN in the c_lflag field
          LDECCTQ     complement of IXANY in the c_iflag field
          LNOFLSH     NOFLSH in the c_lflag field
 
     Another structure  associated  with  each  terminal  is  the
     ltchars  structure  which defines control characters for the
     new 4BSD terminal interface.  Its structure is:
          struct ltchars {
               char t_suspc;  /* stop process signal */
               char t_dsuspc; /* delayed stop process signal */
               char t_rprntc; /* reprint line */
               char t_flushc; /* flush output (toggles) */
               char t_werasc; /* word erase */
               char t_lnextc; /* literal next character */
          };
 
     The characters are mapped to members of the  c_cc  field  of
     the termio structure as follows:
 
          ltchars     c_cc index
          t_suspc     VSUSP
          t_dsuspc    VDSUSP
          t_rprntc    VREPRINT
          t_flushc    VDISCARD
          t_werasc    VWERASE
          t_lnextc    VLNEXT
 
IOCTLS
     ttcompat responds to the following ioctl calls.  All  others
     are passed to the module below.
 
     TIOCGETP    The argument is a pointer to  an  sgttyb  struc-
                 ture.   The  current  terminal state is fetched;
                 the appropriate characters in the terminal state
                 are  stored  in that structure, as are the input
                 and output speeds.  The values of the  flags  in
                 the sg_flags field are derived from the flags in
                 the terminal state and stored in the structure.
 
     TIOCSETP    The argument is a pointer to  an  sgttyb  struc-
                 ture.   The appropriate characters and input and
                 output speeds in the terminal state are set from
                 the  values  in that structure, and the flags in
                 the terminal state are set to match  the  values
                 of  the  flags  in  the  sg_flags  field of that
                 structure.  The state is changed with a  TCSETSF
                 ioctl, so that the interface delays until output
                 is quiescent, then throws away any unread  char-
                 acters, before changing the modes.
 
     TIOCSETN    The argument is a pointer to  an  sgttyb  struc-
                 ture.  The terminal state is changed as TIOCSETP
                 would change it, but a TCSETS ioctl is used,  so
                 that  the  interface neither delays nor discards
                 input.
 
     TIOCHPCL    The argument is ignored.  The HUPCL flag is  set
                 in the c_cflag word of the terminal state.
 
     TIOCFLUSH   The argument is a pointer to  an  int  variable.
                 If  its value is zero, all characters waiting in
                 input or output queues are flushed.   Otherwise,
                 the  value  of the int is treated as the logical
                 OR of the FREAD  and  FWRITE  flags  defined  by
                 <sys/file.h>; if the FREAD bit is set, all char-
                 acters waiting in input queues are flushed,  and
                 if the FWRITE bit is set, all characters waiting
                 in output queues are flushed.
 
     TIOCSTOP    The argument is ignored.  Output is  stopped  as
                 if the STOP character had been typed.
 
     TIOCSTART   The argument is ignored.  Output is restarted as
                 if the START character had been typed.
 
     TIOCGETC    The argument is a pointer to  an  tchars  struc-
                 ture.   The  current  terminal state is fetched,
                 and the appropriate characters in  the  terminal
                 state are stored in that structure.
 
     TIOCSETC    The argument is a pointer to  an  tchars  struc-
                 ture.   The values of the appropriate characters
                 in the terminal state are set from  the  charac-
                 ters in that structure.
 
     TIOCLGET    The argument  is  a  pointer  to  an  int.   The
                 current  terminal  state  is  fetched,  and  the
                 values of the local flags are derived  from  the
                 flags  in  the  terminal state and stored in the
                 int pointed to by the argument.
 
     TIOCLBIS    The argument is a pointer to an int whose  value
                 is  a  mask  containing  flags  to be set in the
                 local flags word.  The current terminal state is
                 fetched,  and  the values of the local flags are
                 derived from the flags in  the  terminal  state;
                 the  specified  flags  are set, and the flags in
                 the terminal state are  set  to  match  the  new
                 value of the local flags word.
 
     TIOCLBIC    The argument is a pointer to an int whose  value
                 is  a mask containing flags to be cleared in the
                 local flags word.  The current terminal state is
                 fetched,  and  the values of the local flags are
                 derived from the flags in  the  terminal  state;
                 the  specified  flags are cleared, and the flags
                 in the terminal state are set to match  the  new
                 value of the local flags word.
 
     TIOCLSET    The argument is a pointer to an int containing a
                 new set of local flags.  The flags in the termi-
                 nal state are set to match the new value of  the
                 local flags word.
 
     TIOCGLTC    The argument is a pointer to an  ltchars  struc-
                 ture.   The values of the appropriate characters
                 in the terminal state are stored in that  struc-
                 ture.
 
     TIOCSLTC    The argument is a pointer to an  ltchars  struc-
                 ture.   The values of the appropriate characters
                 in the terminal state are set from  the  charac-
                 ters in that structure.
 
-----------------------------
 
From: Guy Harris <guy@auspex.auspex.com>
Subject: Re: dynamic linking C code with ld link editor
Date: 14 Feb 91 21:39:52 GMT
To:       unix-wizards@sem.brl.mil
 
>I had this problem for several months until (after much hacking) I got my
>dynamic loaders to work with Postgres.  It is a rather different idea than
>shared libraries - the idea is to load and execute a function (whose name is
>unknown beforehand) in an object file given by the user.
 
Different idea, but the SunOS 4.1/S5R4 implementation of it (and, I
think, the OSF/1 implementation of it) uses a lot of stuff from the
shared library mechanism in the OSes in question.  If you're on one of
those systems, you don't have to know about executable file formats, or
all the other obscure stuff; just use the dynamic loading mechanism that
comes with the OS.
 
-----------------------------
 
From: Dave Armbrust <dma@pcssc.com>
Subject: SCO Mailing List
Date: 14 Feb 91 22:45:01 GMT
To:       unix-wizards@sem.brl.mil
 
 
                  The Santa Cruz Operation mailing list
 
     Charter:  For exchange of information and discussions regarding
               all products from Santa Cruz operations.
 
This  group  will be beneficial to any one interested or currently  using
SCO products.  This mailing list is a single area  that  discussions  and
information  can be exchanged regarding ALL SCO products.   This  mailing
is independent of any existing news groups.
 
If  you are currently using SCO products, interested in products from SCO
or work for Santa Cruz Operations I encourage you to join the SCO mailing
list.  Currently there are 300 sites that subscribe to the list.
 
The SCO mailing list is located on the uunet host.
Send all articles or discussions to the address: sco-list@uunet.uu.net
 
Please send change requests to sco-list-request@uunet.uu.net.
 
If you wish to be added to this list please follow these instructions.
IT IS IMPORTANT THAT THESE INSTRUCTIONS ARE FOLLOWED AS THE PROCESS IS
AUTOMATED.
 
1)  Mail your add request to sco-list-request@uunet.  Do not send
your request to sco-list@uunet.uu.net as this is the address to post all
articles to.
 
2)  Include the address you wish to received the mailing at in the body
of the mail message. Example to add the address dma@pcssc.com include
in the body of the message the following:
 
Add: dma@pcssc.com
 
Note the word add starts with a capital `A` and is the first word on the
line.  It is also followed by a colon ':', a single blank space, an address
and then a new line.  Be sure to include the `:` and the blank.  Do not
follow the address with any comments.
 
Only internet addresses are accepted, Bang paths are not allowed.
 
Do not put the add request in the subject line as this will be ignored.
 
3) Once our system receives your request you will receive an acknowledgment.
You will then start to get all articles posted to uunet!sco-list.
 
4) If you do not receive the acknowledgment and postings right away do not
send a alternate address path.  You may end up getting two copies of all
posting using both paths.  Instead mail myself at dma@pcssc.com and ask if I
got the original request.
 -----------------------------------------------------------------------------
Dave Armbrust               |
PC Software Systems         |     dma@pcssc.com or
4370 S Tamiami Trail        |     owner-sco-list@uunet.uu.net
Sarasota, FL 34231-3400     |     Phone: (813)922-8857
 
-----------------------------
 
From: Lynn Wallace <lwallace@javelin.es.com>
Subject: How to get remote ethernet address?
Keywords: ethernet address remote
Date: 15 Feb 91 00:04:14 GMT
To:       unix-wizards@sem.brl.mil
 
 
We use dedicated ethernet connections between machines, meaning a machine on
each end of a cable with no other connections.  The system I am writing (or
attempting to :-) a driver for will be connected to various machines, sometimes
"right off the assembly line".  Is there a way to obtain the remote's ethernet
address (vs. internet address; it's a low-level protocol) from software so the
user doesn't have to flip through a manual, eyeball a card or peek memory to
get it?
 
Reply via e-mail please, as I don't usually follow these groups.  Thanks!
 
--
Lynn Wallace			   |I am not an official representative of
Evans and Sutherland Computer Corp.| <- E&S.  Or for that matter, unofficial.
Salt Lake City, UT 84108	   |Internet: lwallace@javelin.sim.es.com
			War not make one great! -- Yoda
 
-----------------------------
 
From: Rouben Rostamian <rouben@math9.math.umbc.edu>
Subject: Counting FLOPS
Date: 15 Feb 91 00:40:44 GMT
Sender: newspost@umbc3.umbc.edu
To:       unix-wizards@sem.brl.mil
 
How does one count the number of floating point operations (flops) during
the execution of a C program?  I guess it is possible to trace manually all
loops and function calls and iterations and recursions, etc., and add them
up, but that will easily gets out of hand for a half-way complicated program.
Are there automatic tools for doing this?
 
I am primarily interested in a solution which will work under RISC Ultrix,
if that matters.
 
Rouben Rostamian
 
--
Rouben Rostamian                          Telephone: (301) 455-2458
Department of Mathematics and Statistics  e-mail:
University of Maryland Baltimore County   bitnet: rostamian@umbc.bitnet
Baltimore, MD 21228,  U.S.A.              internet: rouben@math9.math.umbc.edu
 
-----------------------------
 
From: Ivan Borzieri <borzieri@king.ico.olivetti.com>
Subject: Putenv() & Getenv() Bug ?
Date: 15 Feb 91 10:15:44 GMT
Sender: news@olivea.atc.olivetti.com
To:       unix-wizards@sem.brl.mil
 
Hi,
 
I URGENTLY need this information :
 
I wrote two c modules called by a fortran main.
in the first  c module I call the system function "putenv()" which should
set a variable in the environment.
In the second  c module I call the system function "getenv()" to read
the value of the previous set variable.
The value returned by getenv() is NULL, id est, that variable
doesn't exist.
 
Now my question is : is this right ?
I know that in C-Shell scripts, when you set variables you loose them
as you exit the script.
Is it the same or this is a operating system bug ?
 
The system is SCO Unix System V 3.2
 
							Thanks,
							Ivan Borzieri
 
-----------------------------
 
 
End of UNIX-WIZARDS Digest
**************************

IN% Postmaster@VAX1.Mankato.MSUS.EDU %MKVAX1.DECNET@msus1.bitnet (PMDF Mail Server) (02/18/91)

Return-path: <postmaster@VAX1.Mankato.MSUS.EDU>
Date: Sat, 16 Feb 1991 14:12 CST
From: PMDF Mail Server <Postmaster@VAX1.Mankato.MSUS.EDU>
Subject: Undeliverable mail: SMTP delivery failure
To: "MSUS1::IN%\"Unix-Wizards@BRL.MIL\""@VAX1.Mankato.MSUS.EDU
Message-id: <20B7AB3D60207F88@VAX1.Mankato.MSUS.EDU>

The message could not be delivered to:

Addressee: BD6@MKATT1.MANKATO.MSUS.EDU
Reason: Illegal host/domain name found.

----------------------------------------

Received: from DECNET-MAIL by VAX1.Mankato.MSUS.EDU with PMDF#10000; Fri, 15
 Feb 1991 13:24 CST
Date: Fri, 15 Feb 1991 13:24 CST
From: "MSUS1::IN%\"Unix-Wizards@BRL.MIL\""@VAX1.Mankato.MSUS.EDU
Subject: read news software
To: BD6@MKATT1.MANKATO.MSUS.EDU
Message-id: <50DAE39F00206D56@VAX1.Mankato.MSUS.EDU>
X-VMS-To: "Brian D. Goecke" <bd6%MKVAX1.DECNET@MSUS1.BITNET>

Return-path: <UNIX-WIZ@NDSUVM1.BITNET>
Received: from NDSUVM1.BITNET (MAILER@NDSUVM1) by MSUS1.MSUS.EDU with
 PMDF#10130; Fri, 15 Feb 1991 13:20 CST
Received: by NDSUVM1 (Mailer R2.07) id 7075; Fri, 15 Feb 91 13:15:16 CST
Date: Fri, 15 Feb 91 08:38:20 PST
From: Nagesh_Pabbisetty.Henr801C@XEROX.COM
Subject: read news software
Sender: Unix-Wizards Mailing List <UNIX-WIZ@NDSUVM1.BITNET>
To: "Brian D. Goecke" <bd6%MKVAX1.DECNET@MSUS1.BITNET>
Reply-to: Unix-Wizards@BRL.MIL
Message-id: <5062C61C00005A4C@MSUS1.MSUS.EDU>
X-To:         unix-wizards@sem.brl.mil
X-cc:         Pabbisetty.Henr801C@xerox.com, phillips.Henr801C@xerox.com

We would like to start getting news feed at our location (Rochester,NY).
 
Could someone give us the location of the software for "read news"? Is this
the best software available for reading news? Is this software available for
anonymous ftp?
 
We will summarize and post information to the net, if there is enough
 interest...
 
Thanks...
 
pabbiset@arisia.xerox.com, phillips@arisia.xerox.com
-------------------------------------------------------------------------------
		Learning is a monotonic growth experience,
		Education is an exercise in iteration.
-------------------------------------------------------------------------------

IN% Postmaster@VAX1.Mankato.MSUS.EDU %MKVAX1.DECNET@msus1.bitnet (PMDF Mail Server) (02/18/91)

Return-path: <postmaster@VAX1.Mankato.MSUS.EDU>
Date: Sat, 16 Feb 1991 14:12 CST
From: PMDF Mail Server <Postmaster@VAX1.Mankato.MSUS.EDU>
Subject: Undeliverable mail: SMTP delivery failure
To: "MSUS1::IN%\"UNIX-WIZARDS@BRL.MIL\""@VAX1.Mankato.MSUS.EDU
Message-id: <20BB4972C0207F88@VAX1.Mankato.MSUS.EDU>

The message could not be delivered to:

Addressee: BD6@MKATT1.MANKATO.MSUS.EDU
Reason: Illegal host/domain name found.

----------------------------------------

Received: from DECNET-MAIL by VAX1.Mankato.MSUS.EDU with PMDF#10000; Sat, 16
 Feb 1991 05:50 CST
Date: Sat, 16 Feb 1991 05:50 CST
From: "MSUS1::IN%\"UNIX-WIZARDS@BRL.MIL\""@VAX1.Mankato.MSUS.EDU
Subject: UNIX-WIZARDS Digest  V12#020
To: BD6@MKATT1.MANKATO.MSUS.EDU
Message-id: <DAA92F848020713B@VAX1.Mankato.MSUS.EDU>
X-VMS-To: "Brian D. Goecke" <bd6%MKVAX1.DECNET@MSUS1.BITNET>

Return-path: <UNIX-WIZ@NDSUVM1.BITNET>
Received: from NDSUVM1.BITNET (MAILER@NDSUVM1) by MSUS1.MSUS.EDU with
 PMDF#10130; Sat, 16 Feb 1991 05:49 CST
Received: by NDSUVM1 (Mailer R2.07) id 6467; Sat, 16 Feb 91 05:44:58 CST
Date: Sat, 16 Feb 91 05:45:03 EST
From: Mike Muuss The Moderator <Unix-Wizards-Request@BRL.MIL>
Subject: UNIX-WIZARDS Digest  V12#020
Sender: Unix-Wizards Mailing List <UNIX-WIZ@NDSUVM1.BITNET>
To: "Brian D. Goecke" <bd6%MKVAX1.DECNET@MSUS1.BITNET>
Reply-to: UNIX-WIZARDS@BRL.MIL
Message-id: <DA77307200005813@MSUS1.MSUS.EDU>
X-To:         UNIX-WIZARDS@BRL.MIL

UNIX-WIZARDS Digest          Sat, 16 Feb 1991              V12#020
 
Today's Topics:
                        Finding tape block size
                      Re: Finding tape block size
 Re: Stuck-up Wizards (Re: Summary and Fix for "slashes in filenames")
                          Re: Stuck-up Wizards
            Re: Loading and Executing Object Code at Runtime
                   Re: SIGCONT occurs after a SIGTERM
             Re: Help!  There's a slash '/' in my filename.
                     Re: Putenv() & Getenv() Bug ?
                     converting termcap to termlib
                           Re: Counting FLOPS
 
-----------------------------------------------------------------
 
From: Anthony DeBoer <adeboer@gjetor.geac.com>
Subject: Finding tape block size
Date: 12 Feb 91 22:43:53 GMT
To:       unix-wizards@sem.brl.mil
 
I periodically get tapes from client's systems or other sources where the
precise tape format isn't documented.  What I'm looking to find out is if
there's a way to determine exactly what block size was used when the tape was
written, or even if this is a major requirement (should I even be worrying
about it or not?).  Reading with a tasteful default value usually seems to
work (even a 512-byte block size has worked before, although at tremendous
loss of efficiency), but I'm wondering if there's any chance of data loss with
the wrong block size, or any rule of thumb for optimizing things.
 
I have several systems here, so as far as naming my hardware/software
configuration goes I'll just mention the Unisys 6000/50 running SVR3.0 with a
150meg QIC drive.  And I shouldn't forget the old Convergent Technologies
Mightyframe.
--
Anthony DeBoer NAUI#Z8800 | adeboer@gjetor.geac.com   | Programmer (n): One who
Geac J&E Systems Ltd.     | uunet!geac!gjetor!adeboer | makes the lies the
Toronto, Ontario, Canada  | #include <disclaimer.h>   | salesman told come true.
 
-----------------------------
 
From: George Robbins <grr@cbmvax.commodore.com>
Subject: Re: Finding tape block size
Date: 16 Feb 91 05:17:06 GMT
To:       unix-wizards@sem.brl.mil
 
In article <1991Feb12.224353.6514@gjetor.geac.COM> adeboer@gjetor.geac.COM
 (Anthony DeBoer) writes:
> I periodically get tapes from client's systems or other sources where the
> precise tape format isn't documented.  What I'm looking to find out is if
> there's a way to determine exactly what block size was used when the tape was
> written, or even if this is a major requirement (should I even be worrying
> about it or not?).  Reading with a tasteful default value usually seems to
> work (even a 512-byte block size has worked before, although at tremendous
> loss of efficiency), but I'm wondering if there's any chance of data loss with
> the wrong block size, or any rule of thumb for optimizing things.
 
dd if=/dev/nrmt* of=diskfile bs=65535 count=1 ; ls -l diskfile ...
	- or -
dd if=/dev/nrmt* bs=65535 count=1 | wc -c
 
Different tape devices have different characteristics.  A sun type cartridge
tape is insensitive to blocksize (except as a performance issue), traditional
raw 9-track tapes may well lose data...
 
--
George Robbins - now working for,     uucp:   {uunet|pyramid|rutgers}!cbmvax!grr
but no way officially representing:   domain: grr@cbmvax.commodore.com
Commodore, Engineering Department     phone:  215-431-9349 (only by moonlite)
 
-----------------------------
 
From: Doug Gwyn <gwyn@smoke.brl.mil>
Subject: Re: Finding tape block size
Date: 16 Feb 91 05:34:24 GMT
To:       unix-wizards@sem.brl.mil
 
In article <1991Feb12.224353.6514@gjetor.geac.COM> adeboer@gjetor.geac.COM
 (Anthony DeBoer) writes:
>... if there's a way to determine exactly what block size was used when the
>tape was written, or even if this is a major requirement (should I even be
>worrying about it or not?).
 
Assuming your tape subsystem conforms to long-established UNIX practice,
if the read() system call specifies a read count less than the actual
block size when reading the "raw tape" device (which is the usual one),
you should get an I/O error since data will be lost.  (If you're trying
to read a "tar" or "cpio" archive, and data ever does get silently lost,
you should see archive checksum comparison errors.)  For read counts
in excess of the block size, read() returns the actual amount of data
read, not the requested size.  Therefore the usual practice is to try to
read using an over-generous allocation for the input buffer, which should
not introduce any significant amount of inefficiency.
 
If you have an oddball device driver or hardware, you may be out of luck.
 
-----------------------------
 
From: "Blair P. Houghton" <bhoughto@pima.intel.com>
Subject: Re: Stuck-up Wizards (Re: Summary and Fix for "slashes in filenames")
Date: 13 Feb 91 21:21:06 GMT
Sender: news@inews.intel.com
To:       unix-wizards@sem.brl.mil
 
In article <=H_&Z9#@rpi.edu> rodney@sun.ipl.rpi.edu (Rodney Peck II) writes:
>You've missed the point.  I don't think that most of the flame here is
>because someone asked how to get rid of a file with a '/' in it.  It is
>instead because of all the people who are offering wrong answers.
>
>This exact argument went though this group last year with basically the
>same results.
 
Those who do not learn from history are numerous and reproductive;
so, what's your point?
 
>The point is -- this is supposed to be a place where people who really
>actually guarenteed know the answer to some difficult question will answer
>you.  cuw is not the place for people to throw in their two cents.  There's
>a whole other tree that was created for just that purpose.
 
And which might that be?
 
I've seen plenty of comp.unix.internals/wizards threads
that were valuable only after a large number of people had
tweaked the solution.  That's how problems get solved.
Anyone who is capable of solving problems alone isn't
hanging around playing pinochle and kibbitzing about
slashes in filenames.
 
And, some questions have no answer, only answer-determining
algorithms, with many decision points, with many options,
depending on the systems under which the algorithms are to be
implemented.  I'd rather have fifty short, half-right answers
and a clue than one, dead-right answer and be left with the
need to post asking what the answer means on my platform.
 
Someone posted something incorrect?  Welcome to the planet
Earth.  Say it's wrong, say what's right, give us all some
sleep.  (Pardon my hypocrisy; someone's gotta sacrifice so
that others may gain, and I have little to lose.  (Hi, Doug! :-))
 
>and finally, just because a question comes back again and again, doesn't
>mean that all the wrong answers have to be dragged out again.
 
As a tautology, that would be correct, if only because
asking a repeated question can't prevent a wrong answer.
However, it's likely that if the question didn't get into
everyone's knowledge, the correct answer couldn't have,
either.  In fact, if in the standard methodology the answer
is hidden but necessary, then the question must eventually
be deduced, but the answer -- right or wrong -- would have
to wait for the question before it could be produced.
 
>if someone wants to say "hey I read these answers in
>the faq, and I didn't see this idea .... why won't this work?" -- that,
>in my opinon, would be fine.
 
Elitism is no defense for flaming this poor slob:
 
"Hey, I've been reading this group far longer than my
employer and I think is valuable (must be ten minutes, at
least), and I haven't come across this question, and I'm on
a deadline and ... how do I get back rm'ed files?"
 
Any question has essentially that same etiology, even if
the deadline is only for personal reasons, or economics is
only a minor cause.
 
If you had the time and character to wait for the truth to
come to you, or the resources to attract it irresistably,
you wouldn't need question marks at all.
 
Anyone who asks "What's a FAQ?" without first having heard
of one is clairvoyant.
 
>in summary -- it's not a question of people being out of line.  it's a
>question of being considerate when you offer advice to someone who is
>expecting your answer to work.
 
The general admonition for that is to test it yourself.
 
But even that is a lesson that requires experience to
prove its economy.
 
				--Blair
				  "You don't.  You weep for their
				   unlinking and pray that it's on
				   the backups and you can find a
				   good hypnotist to help you type
				   in your changes again."
 
-----------------------------
 
From: Doug Gwyn <gwyn@smoke.brl.mil>
Subject: Re: Stuck-up Wizards
Date: 16 Feb 91 05:27:44 GMT
To:       unix-wizards@sem.brl.mil
 
In article <2509@inews.intel.com> bhoughto@pima.intel.com (Blair P. Houghton)
 writes:
>>cuw is not the place for people to throw in their two cents.  There's
>>a whole other tree that was created for just that purpose.
>And which might that be?
 
Comp.unix.questions, which you presumably know since you posted to
both groups.  Come on, get with the program!
 
-----------------------------
 
Subject: Re: Loading and Executing Object Code at Runtime
Date: 14 Feb 91 07:22:52 GMT
To:       unix-wizards@sem.brl.mil
 
In an article, flan@cics.Berkeley.EDU (Ian Flanigan) writes:
>Hi,
>
>I tried posting this to comp.unix.questions first, but as I got no answer
>I figured this must be a Wizard level question:
>
>I'm wondering how to load an object file (my_functions.o) at execution
>time and execute a function contained therein.  I know this is possible
>since many flavors of LISP allow you to compile your functions and then
>load the compiled versions later.
 
When you are talking about compiling functions and loading the compiled
versions later, are you talking about using a linkage editor to build
a runable image?
 
If you're trying to do what it looks like you're trying to do, the answer
is "you can't get there from here."  You would have open the object file,
load the function within the context of the current process (a real trick),
allocate the core for data, stack, and bbs, push the stack frame, and
jump to the address of this arbitrary function.  Just ain't no way you
can be doin' this in user mode.
 
--
Michael Stefanik                       | Opinions stated are not even my own.
Systems Engineer, Briareus Corporation | UUCP: ...!uunet!bria!mike
 -------------------------------------------------------------------------------
technoignorami (tek'no-ig'no-ram`i) a group of individuals that are constantly
found to be saying things like "Well, it works on my DOS machine ..."
 
-----------------------------
 
From: Tom Christiansen <tchrist@convex.com>
Subject: Re: Loading and Executing Object Code at Runtime
Date: 15 Feb 91 17:30:24 GMT
Sender: news access account <usenet@convex.com>
Nntp-Posting-Host: pixel.convex.com
To:       unix-wizards@sem.brl.mil
 
From the keyboard of uunet!bria!mike:
:If you're trying to do what it looks like you're trying to do, the answer
:is "you can't get there from here."  You would have open the object file,
:load the function within the context of the current process (a real trick),
:allocate the core for data, stack, and bbs, push the stack frame, and
:jump to the address of this arbitrary function.  Just ain't no way you
:can be doin' this in user mode.
 
Never say never.  It certainly is on some architectures.  Just malloc or
mmap in some pages as RWX, then load the position-independently compiled
functions in there from disk, and call through a function pointer.  There
are also overlay schemes available -- that's what I used to do on Z80
machines.  You could also use overlays on PDP-11's.
 
--tom
--
Tom Christiansen		tchrist@convex.com	convex!tchrist
 "All things are possible, but not all expedient."  (in life, UNIX, and perl)
 
-----------------------------
 
From: Guy Harris <guy@auspex.auspex.com>
Subject: Re: Loading and Executing Object Code at Runtime
Date: 15 Feb 91 23:11:31 GMT
To:       unix-wizards@sem.brl.mil
 
>A quite widespread hideous idiosyncratic restriction is that on
>some architectures, notably the 386, you can't execute out of data
>space.
 
What's "data space", and how is it different from any other sort of
space?  (Most UNIX systems run with a flat address space on 386es.  PTEs
on the 386 only have a "writable" bit.)
 
-----------------------------
 
From: "Brandon S. Allbery KB8JRR" <allbery@ncoast.org>
Subject: Re: SIGCONT occurs after a SIGTERM
Date: 15 Feb 91 00:56:23 GMT
Followup-To: comp.unix.questions
To:       unix-wizards@sem.brl.mil
 
As quoted from <7103@fs1.cam.nist.gov> by coleman@cam.nist.gov (Sean Sheridan
 Coleman X5672):
+---------------
| Please explain to me why a SIGCONT is sent to a process after
| SIGTERM is sent to my process. It doesn't compute because TERM
+---------------
 
Being suspended, it wouldn't execute the signal handler unless it were
continued.  Also, I think the exit processing in the kernel needs this.
(So why does the SIGCONT handler run after the SIGTERM handler?  Because
signal handlers are invoked in signal-number order.)
 
++Brandon
(BSD folks feel free to correct me.)
--
Me: Brandon S. Allbery			    VHF/UHF: KB8JRR on 220, 2m, 440
Internet: allbery@NCoast.ORG		    Packet: KB8JRR @ WA8BXN
America OnLine: KB8JRR			    AMPR: KB8JRR.AmPR.ORG [44.70.4.88]
uunet!usenet.ins.cwru.edu!ncoast!allbery    Delphi: ALLBERY
 
-----------------------------
 
From: Robert Claeson <prc@erbe.se>
Subject: Re: Help!  There's a slash '/' in my filename.
Date: 15 Feb 91 08:11:41 GMT
To:       unix-wizards@sem.brl.mil
 
In article <BZS.91Feb14043317@world.std.com> bzs@world.std.com (Barry Shein)
 writes:
 
>From: s082@brems.ii.uib.no
>>Just one thing: Why would anyone want a slash (or any such character) a
>>filename in the first place?
>
>Perhaps the file name was in Norwegian? :-)
 .....
 
>Doesn't norwegian use o-slash and all that?
 
Yes, but it's o-slash as a single seven-bit or eight-bit character and
not an "o" followed by a slash.
 
--
Robert Claeson
 
Disclaimer: I represent myself and not my employer.
 
-----------------------------
 
From: Erik Naggum <enag@ifi.uio.no>
Subject: Re: Help!  There's a slash '/' in my filename.
Date: 15 Feb 91 09:15:08 GMT
Sender: Erik Naggum <enag@ifi.uio.no>
To:       unix-wizards@sem.brl.mil
 
In article <BZS.91Feb14043317@world.std.com>, Barry Shein writes:
> From: s082@brems.ii.uib.no
> >Just one thing: Why would anyone want a slash (or any such character) a
> >filename in the first place?
 
> Perhaps the file name was in Norwegian? :-)
 
I fail to see the humor in this.
 
> Doesn't norwegian use o-slash and all that?
 
Norwegian does overload (as per ISO 646) [\]{|} into (ISO 8859-1 alert)
FXEfxe, but / remains /.  Norwegians may actually use - or . to
separate the parts of the date spec, so you might be better off with
one of us Viking descendants...  (Presently, I'm glad that we did not
inherit their Runes, even though the winter weather outside is
reminiscent of the Fimbulvinter we will see shortly before, or was it
after, the end of the world.)
 
My parents were fortunately smart enough to choose a family name
without any of the "national" characters, and to give me a name without
any of them, too, which might or might not have been caused by a quite
astonishing amount of foresight.  I've already decided on a dedication
line for any books I might produce:
 
	To my parents, who kindly avoided F, X, and E in my name.
 
Finally, I hope this makes it out with the ISO 8859-1 intact.  If not,
some of you might wonder what's so special with F, X and E.
 
--
[Erik Naggum]					     <enag@ifi.uio.no>
Naggum Software, Oslo, Norway			   <erik@naggum.uu.no>
 
-----------------------------
 
From: Jenner <Jenner@uswnvg.uucp>
Subject: Re: Help!  There's a slash '/' in my filename.
Date: 16 Feb 91 05:22:04 GMT
To:       unix-wizards@sem.brl.mil
 
In article <1991Feb13.120201.13608@eik.ii.uib.no>, s082@brems.ii.uib.no writes:
>
> There seems to be a rather lengthy discussion going on about slashes in
> filenames,
> how to get them there, and whether to ask questions about them...
> Just one thing: Why would anyone want a slash (or any such character) a
> filename in the first place?
 
Maybe they didn't.  How bout this sceniero.
 
person types:   foo/bar and hits return
wanted to type: foo.bar and hit return
 
look at your keyboard.  it is possible.
 
"Users.  If we could only keep 'em off the machine."
					cedgman
 
 
 
	jenner .....................................dfpedro@uswnvg.UUCP
 
	      *Disclaimer?  You bet!  I speak for myself only.*
 
-----------------------------
 
From: "S. A. Rasche" <scrs_ltd@uhura.cc.rochester.edu>
Subject: 'Talk' off campus
Date: 15 Feb 91 13:42:54 GMT
Sender: scrs_ltd@uhura.cc.rochester.edu
To:       unix-wizards@sem.brl.mil
 
 
	Does anyone know how to get the 'talk' command to work off campus??
I have used it on the University of Rochester campus, but when I try to
'talk' to someone at let's say Ga. Tech,  it doesn't work.  I try
'talk gt7164b@prism.gatech.edu' but nothing happens or I get a response saying
that they are an unknown host or something like that.
	Can anyone in this news group help me????
 
							Thanks a bunch,
							Shorts
 
--Tip your bartenders - Tip your friends--
				Kevn Kinney
 
-----------------------------
 
From: "Conor P. Cahill" <cpcahil@virtech.uucp>
Subject: Re: Putenv() & Getenv() Bug ?
Date: 15 Feb 91 14:03:09 GMT
To:       unix-wizards@sem.brl.mil
 
borzieri@KING.ICO.OLIVETTI.COM (Ivan Borzieri) writes:
 
>in the first  c module I call the system function "putenv()" which should
>set a variable in the environment.
>In the second  c module I call the system function "getenv()" to read
>the value of the previous set variable.
 
the problem is *PROBABLY* that you are using a local variable in the
call to putenv.  local data is lost when you return from the function
and thereafter unavailable.  the putenv(3) man page states that you
shouldn't do this.
 
The argument to putenv should point to a static data area or a malloc'd
data area.
 
All this is predicated on the fact that both modules (the one calling
putenv and the one calling getenv) are called from the same executable.
--
Conor P. Cahill            (703)430-9247        Virtual Technologies, Inc.
uunet!virtech!cpcahil                           46030 Manekin Plaza, Suite 160
                                                Sterling, VA 22170
 
-----------------------------
 
Subject: Re: Putenv() & Getenv() Bug ?
Date: 16 Feb 91 02:25:54 GMT
To:       unix-wizards@sem.brl.mil
 
In an article, KING.ICO.OLIVETTI.COM!borzieri (Ivan Borzieri) writes:
>I wrote two c modules called by a fortran main.
>in the first  c module I call the system function "putenv()" which should
>set a variable in the environment.
>In the second  c module I call the system function "getenv()" to read
>the value of the previous set variable.
>The value returned by getenv() is NULL, id est, that variable
>doesn't exist.
>Now my question is : is this right ?
 
I have found putenv() to be particuarly annoying, and wonderfully inconsistent
in implementation.  For example, not all putenv()'s guarantee that the
newly created variable is inherited by child processes.
 
Try this ditty to see if your putenv() is broken:
 
#include <stdio.h>
 
main()
{
	putenv("FOO=BAR");
	printf("FOO=%s\n",(char *)getenv("FOO"));
 
	if ( fork() )
		wait(NULL);
	else
		execlp("/bin/sh","/bin/sh",NULL);
}
 
When you run this program, you should see "FOO=BAR" and then a shell
prompt; type "echo $FOO" and you should get "BAR".  Press CTRL-D to jump
out of the subshell.  If you don't get this kind of response, I would
consider your putenv() broken.
 
If it is broken, then write some subroutines to handle the environment
yourself (_environ is a pointer to an array of pointers to char's that
is the current environment).  Use execle() or execve() to pass your own
table to a child process.  If you need more specific information on
doing this type of thing, send me mail, and I'll help.
 
>I know that in C-Shell scripts, when you set variables you loose them
>as you exit the script.
>Is it the same or this is a operating system bug ?
 
Neither.  Is is a "problem" with the way that the putenv() and getenv()
subroutines are implemented.  Shell variables are "lost" because scripts
are executed in subshells.
 
Golden rule:  No child process may modify its parent's environment.
 
Hope this helps.
--
Michael Stefanik, MGI Inc., Los Angeles| Opinions stated are not even my own.
Title of the week: Systems Engineer    | UUCP: ...!uunet!bria!mike
 -------------------------------------------------------------------------------
Remember folks: If you can't flame MS-DOS, then what _can_ you flame?
 
-----------------------------
 
From: "E. L. Salant" <salantel@wsqtb9.crd.ge.com>
Subject: converting termcap to termlib
Keywords: termcap termlib tic
Date: 15 Feb 91 19:17:35 GMT
Sender: news@crdgw1.crd.ge.com
Followup-To: comp.unix.wizards
To:       unix-wizards@sem.brl.mil
 
I am trying to run a cursesX application on our new DecStation 5000, and have
found that there is no termlib entry for xterm.  I therefore took the
termcap entry and did a tic -v on it.  While the tic command seemed to work ok
(it created an xterm directory in /usr/lib/terminfo/x), when I try running
my application I get
	"Sorry, I don't know how to deal with your 'xterm' terminal" coming from
initscr.
	Why isn't it finding the xterm entry in termlib??
Please respond directly to me and thanks for your help
- Eliot Salant
 
-----------------------------
 
From: Doug Gwyn <gwyn@smoke.brl.mil>
Subject: Re: Counting FLOPS
Date: 15 Feb 91 19:31:44 GMT
Followup-To: comp.unix.questions
To:       unix-wizards@sem.brl.mil
 
In article <5025@umbc3.UMBC.EDU> rouben@math9.math.umbc.edu writes:
>How does one count the number of floating point operations (flops) during
>the execution of a C program?
 
I for one would have to know exactly what is meant by a "FLOP".
I'm not being facetious; there is considerable truth to the saying
that "there are lies, damned lies, and benchmarks".  (Originally
"statistics" was the third category, but it was adapted for modern
purposes.)  On all computing architectures known to me, different
floating-point operations take different amounts of time, sometimes
in fact dependent on the content of the data being operated on;
thus an measure such as "FLOPs per second" is not a very well-
defined quantity.  On the other hand, in some implementations that
I know of, the floating-point processor is involved in executing
some operations on what would probably be considered "integer" data;
is it intended that those operations be counted or excluded?
 
It may be that your best bet would be to rely on total time required
to perform some lengthy computation (perhaps numerous iterations of
some shorter computation), rather than number of operations as such.
 
-----------------------------
 
 
End of UNIX-WIZARDS Digest
**************************

IN% Postmaster@VAX1.Mankato.MSUS.EDU %MKVAX1.DECNET@msus1.bitnet (PMDF Mail Server) (02/18/91)

Return-path: <postmaster@VAX1.Mankato.MSUS.EDU>
Date: Sat, 16 Feb 1991 14:12 CST
From: PMDF Mail Server <Postmaster@VAX1.Mankato.MSUS.EDU>
Subject: Undeliverable mail: SMTP delivery failure
To: "MSUS1::IN%\"Unix-Wizards@BRL.MIL\""@VAX1.Mankato.MSUS.EDU
Message-id: <20BEBE7540207F88@VAX1.Mankato.MSUS.EDU>

The message could not be delivered to:

Addressee: BD6@MKATT1.MANKATO.MSUS.EDU
Reason: Illegal host/domain name found.

----------------------------------------

Received: from DECNET-MAIL by VAX1.Mankato.MSUS.EDU with PMDF#10000; Sat, 16
 Feb 1991 12:51 CST
Date: Sat, 16 Feb 1991 12:51 CST
From: "MSUS1::IN%\"Unix-Wizards@BRL.MIL\""@VAX1.Mankato.MSUS.EDU
Subject: Slashes in filenames?
To: BD6@MKATT1.MANKATO.MSUS.EDU
Message-id: <157FD56BA0207B5D@VAX1.Mankato.MSUS.EDU>
X-VMS-To: "Brian D. Goecke" <bd6%MKVAX1.DECNET@MSUS1.BITNET>

Return-path: <UNIX-WIZ@NDSUVM1.BITNET>
Received: from NDSUVM1.BITNET (MAILER@NDSUVM1) by MSUS1.MSUS.EDU with
 PMDF#10130; Sat, 16 Feb 1991 12:50 CST
Received: by NDSUVM1 (Mailer R2.07) id 8784; Sat, 16 Feb 91 12:50:12 CST
Date: Sat, 16 Feb 91 12:21:46 CST
From: STEINKEL%CAR1@LEAV-EMH.ARMY.MIL
Subject: Slashes in filenames?
Sender: Unix-Wizards Mailing List <UNIX-WIZ@NDSUVM1.BITNET>
To: "Brian D. Goecke" <bd6%MKVAX1.DECNET@MSUS1.BITNET>
Reply-to: Unix-Wizards@BRL.MIL
Message-id: <1552CD67C000601E@MSUS1.MSUS.EDU>
X-To:         unix-wizards@BRL.MIL

From:  LELAND STEINKE, 242-4633
Subject: Slashes in filenames?
I must have missedsomething...
 
If the prohibition on slashes in filenames is enforced by the kernel, how
the bleep does NFS get them in there?  If *IX were as modular, well,
structured, well, well-behaved as it were supposed to be, shouldn't these
things never happen, whether or not there is an exactly appropriate error
code for it?
 
 
Leland J. Steinke, Programmer/Analyst
U.S. Army War College, Carlisle, PA  17013
 
*  we make your life difficult, so you won't have to.  *
 
my Uncle isn't being represented by me right now...

IN% Postmaster@VAX1.Mankato.MSUS.EDU %MKVAX1.DECNET@msus1.bitnet (PMDF Mail Server) (02/18/91)

Return-path: <postmaster@VAX1.Mankato.MSUS.EDU>
Date: Sun, 17 Feb 1991 05:34 CST
From: PMDF Mail Server <Postmaster@VAX1.Mankato.MSUS.EDU>
Subject: Undeliverable mail: SMTP delivery failure
To: "MSUS1::IN%\"UNIX-WIZARDS@BRL.MIL\""@VAX1.Mankato.MSUS.EDU
Message-id: <A1867D8000207A4C@VAX1.Mankato.MSUS.EDU>

The message could not be delivered to:

Addressee: BD6@MKATT1.MANKATO.MSUS.EDU
Reason: Illegal host/domain name found.

----------------------------------------

Received: from DECNET-MAIL by VAX1.Mankato.MSUS.EDU with PMDF#10000; Sun, 17
 Feb 1991 05:34 CST
Date: Sun, 17 Feb 1991 05:34 CST
From: "MSUS1::IN%\"UNIX-WIZARDS@BRL.MIL\""@VAX1.Mankato.MSUS.EDU
Subject: UNIX-WIZARDS Digest  V12#021
To: BD6@MKATT1.MANKATO.MSUS.EDU
Message-id: <A17DBBFBE020814B@VAX1.Mankato.MSUS.EDU>
X-VMS-To: "Brian D. Goecke" <bd6%MKVAX1.DECNET@MSUS1.BITNET>

Return-path: <UNIX-WIZ@NDSUVM1.BITNET>
Received: from NDSUVM1.BITNET (MAILER@NDSUVM1) by MSUS1.MSUS.EDU with
 PMDF#10130; Sun, 17 Feb 1991 05:32 CST
Received: by NDSUVM1 (Mailer R2.07) id 5597; Sun, 17 Feb 91 05:22:39 CST
Date: Sun, 17 Feb 91 05:44:59 EST
From: Mike Muuss The Moderator <Unix-Wizards-Request@BRL.MIL>
Subject: UNIX-WIZARDS Digest  V12#021
Sender: Unix-Wizards Mailing List <UNIX-WIZ@NDSUVM1.BITNET>
To: "Brian D. Goecke" <bd6%MKVAX1.DECNET@MSUS1.BITNET>
Reply-to: UNIX-WIZARDS@BRL.MIL
Message-id: <A14E6B8EA0007666@MSUS1.MSUS.EDU>
X-To:         UNIX-WIZARDS@BRL.MIL

UNIX-WIZARDS Digest          Sun, 17 Feb 1991              V12#021
 
Today's Topics:
                       Re: Unbuffered pipe(2)'s?
      Re: Wizard-level questions (go4th & thread your primitives)
             Re: Help!  There's a slash '/' in my filename.
                       Re: Slashes in filenames?
            POSIX orphaned process groups: automatic SIGCONT
 
-----------------------------------------------------------------
 
From: "Brandon S. Allbery KB8JRR" <allbery@ncoast.org>
Subject: Re: Unbuffered pipe(2)'s?
Date: 16 Feb 91 02:34:08 GMT
Followup-To: comp.unix.wizards
To:       unix-wizards@sem.brl.mil
 
As quoted from <1991Feb08.151307.3160@convex.com> by tchrist@convex.COM (Tom
 Christiansen):
+---------------
| It seems inappropriate to use comp.unix.wizards as an AI interface to TFM.
+---------------
 
Your intelligence is artificial?  :-)
 
++Brandon
--
Me: Brandon S. Allbery			    VHF/UHF: KB8JRR on 220, 2m, 440
Internet: allbery@NCoast.ORG		    Packet: KB8JRR @ WA8BXN
America OnLine: KB8JRR			    AMPR: KB8JRR.AmPR.ORG [44.70.4.88]
uunet!usenet.ins.cwru.edu!ncoast!allbery    Delphi: ALLBERY
 
-----------------------------
 
From: "Brandon S. Allbery KB8JRR" <allbery@ncoast.org>
Subject: Re: Wizard-level questions (go4th & thread your primitives)
Date: 16 Feb 91 02:48:51 GMT
Followup-To: comp.unix.wizards
To:       unix-wizards@sem.brl.mil
 
As quoted from <19041@rpp386.cactus.org> by jfh@rpp386.cactus.org (John F Haugh
 II):
+---------------
| In article <8433@suns5.cel.co.uk> mjp@cel.co.uk (matthew pidd) writes:
| > I've been tempted to write a FORTH compiler in C (as in build interactive
| >versions and loadable binaries with preprocessing etc) but just haven't had
| >the inclination. Does anyone know of such a creature ... and would it be
| >worth crafting?
|
| Yes, there is a "cforth" in some archive or another.  I have the
| source stashed away here, but don't recall which newsgroup I picked
| it out of.
+---------------
 
TILE was posted to comp.lang.forth,alt.sources (and might have been sent to
comp.sources.unix; I don't rememeber it having been in .misc, but since I
don't have the index any more I can't check :-) at least twice (different
versions).
 
++Brandon
--
Me: Brandon S. Allbery			    VHF/UHF: KB8JRR on 220, 2m, 440
Internet: allbery@NCoast.ORG		    Packet: KB8JRR @ WA8BXN
America OnLine: KB8JRR			    AMPR: KB8JRR.AmPR.ORG [44.70.4.88]
uunet!usenet.ins.cwru.edu!ncoast!allbery    Delphi: ALLBERY
 
-----------------------------
 
From: Rich Rauscher <rauscher@remus.rutgers.edu>
Subject: Re: Help!  There's a slash '/' in my filename.
Date: 16 Feb 91 16:29:53 GMT
To:       unix-wizards@sem.brl.mil
 
>Maybe they didn't.  How bout this sceniero.
 
>person types:   foo/bar and hits return
>wanted to type: foo.bar and hit return
 
>look at your keyboard.  it is possible.
 
Yeh, it's possible to type this but in almost all versions
of Unix, you'll just get an error 'No such
file or directory' or something like it.  This will
happen whether you're in a shell or application.
 
-Rich
--
 -------------
rauscher@rutgers.edu                RPO 5997 PO 5063, New Brunswick, NJ 08903
rauscher@PISCES                          Shakespeare learns Discrete Math:
{backbone site}!rutgers!rauscher                (2B | not (2B)) <=> TRUE
 
-----------------------------
 
From: Doug Gwyn <gwyn@smoke.brl.mil>
Subject: Re: Help!  There's a slash '/' in my filename.
Date: 16 Feb 91 20:31:40 GMT
To:       unix-wizards@sem.brl.mil
 
In article <Feb.16.11.29.52.1991.575@remus.rutgers.edu>
 rauscher@remus.rutgers.edu (Rich Rauscher) writes:
>Yeh, it's possible to type this but in almost all versions
>of Unix, you'll just get an error 'No such
>file or directory' or something like it.  This will
>happen whether you're in a shell or application.
 
Look, guys, if you feel obligated to drag this discussion out,
you should go back and check the posting that started it.  The
problem is not that a user DESIRED to have a pathname COMPONENT
with a slash embedded in it; the problem is that a deficient
implementation ALLOWED one to be created, but it was much more
difficult to fix the situation once it had occurred.  If you
don't by now know how this could have occurred, you should not
be prolonging the discussion.
 
-----------------------------
 
From: Robert Thurlow <thurlow@convex.com>
Subject: Re: Slashes in filenames?
Date: 17 Feb 91 02:01:13 GMT
Sender: news access account <news@convex.com>
Nntp-Posting-Host: dhostwo.convex.com
To:       unix-wizards@sem.brl.mil
 
In <26038@adm.brl.mil> STEINKEL%CAR1@leav-emh.army.mil writes:
 
>If the prohibition on slashes in filenames is enforced by the kernel, how
>the bleep does NFS get them in there?
 
The NFS server on BSD/Sun systems is implemented as a module that calls
virtual file system (VFS) operations directly; the VFS is a layer below
the system call interface.  Since many of the old, inviolable firewalls
are implemented at the system call level, they had to be duplicated in
the NFS server logic.  Sun's initial implementation didn't catch a
number of these, and neither Sun nor the industry as a whole has kept up
with closing them as soon as they were found.  The slash issue is old
news; other things like the server permitting mknod()s by non-root
users are still being found.  One of the things that makes it tougher
is the fact that Unix clients can't send you such a request, since they
still have the firewall in the syscall.
 
Rob T
--
Rob Thurlow, thurlow@convex.com
An employee and not a spokesman for Convex Computer Corp., Dallas, TX
 
-----------------------------
 
From: Tor Lillqvist <tml@tik.vtt.fi>
Subject: POSIX orphaned process groups: automatic SIGCONT
Date: 17 Feb 91 16:01:01 GMT
Sender: news@tik.vtt.fi
Followup-To: comp.sys.hp
To:       unix-wizards@sem.brl.mil
 
I earlier posted a question concerning a problem I had on HP-UX 7.0
with POSIX sessions and signals: A process (A) creates a new session
and process group by calling setsid(), forks, then the parent process
(A) exits and the child (B) forks (and execs new programs) a couple of
times.  Now I stop one of these new child processes (C), but as soon
as another child process (D) exits, the stopped process (C) magically
continues.
 
The (A) process (the process group leader) forks after setsid() so
that it won't by accident acquire a new controlling terminal.
 
Quotes from the HP-UX manual pages:
 
exit(2):
	If the exit of the calling process causes a process group to
	become orphaned, and if any member of the newly-orphaned
	process group is stopped, all processes in the newly-orphaned
	process group are sent SIGHUP and SIGCONT signals.
 
glossary(9): (This entry is only in the printed manual!)
	orphaned process group:  A process group in which the parent
	of every member is either itself a member of the group or is
	not a member of the group's session.
 
According to the reply I got, HP-UX checks in exit() if the process
belonged to an orphaned process group, and sends the SIGHUP and
SIGCONT signals, *even if it wasn't this exit that caused the process
group to become orphaned*.
 
So, I got around my problem by not exiting in (A), instead only waiting for
(B) to finish.  Additionally, (B) calls setpgid(0,0) so that it and
the children will be in their own, non-orphan, process group.  (It is
not an orphan process group because the parent of (B) is in another
process group in *the same session*.)
 
Whew... well at least now I think I understand the POSIX session and
process group concepts.
--
Tor Lillqvist,
working, but not speaking, for the Technical Research Centre of Finland
 
-----------------------------
 
 
End of UNIX-WIZARDS Digest
**************************