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
**************************