[comp.unix.wizards] want help with signal - getpass strange interaction

cdash@boulder.Colorado.EDU (Charles Shub) (12/17/87)

my HP-UX manual under signal(2) says
   When a signal occurs diring calls sush as (but not limited to) read, 
   write ... on a slow device such as a terminal ... the interrupted system
   call may return a -1 to the calling process

while my sun (3.4 i think) manual under signal(3) says
   If a caught signal occurs during certain system calls, causing the call
   to terminate prematurely, the call is automatically restarted.

the particular application is using getpass(3c) to prompt for a password
   and would like to do some cleanup and go on to something else after an
   appropriate number of alarms go off.

in the HP-UX world, the application knows the alarm has gone off because
the getpass returns a -1, but in the sun (and ultrix for that matter) world
the application does not know. 

Has anybody got a work around for the berkeley/ultrix/sun world?

I can't really put the clean up code in the alarm handler, because getpass
has munged the terminal characteristics, and anything that is printed in the
handler queues up until the getpass returns.

please reply by MAIL 

thanks

cdash   aka cdash@boulder.colorado.edu    aka ...hao!boulder!cdash
	aka ...nbires!boulder!cdash       aka  (303) 593-3492
-- 

cdash   aka cdash@boulder.colorado.edu    aka ...hao!boulder!cdash
	aka ...nbires!boulder!cdash       aka  (303) 593-3492