douglas@dcc1.UUCP (04/29/87)
Hi,
I need some help here. The following program is a test program
I wrote to so my problem. The PROBLEM: After a succesfull call
to /bin/su user_name (ie: I went into the sub-shell as the user
I su'ed to), the calling program below gets a SIGTTOU and returns
to the csh. I must then do a '%fg' to complete the program.
This does not happen until some ioctl() is done. If I di a
'fprintf(stderr,"message\n")' after the 'system()' call, it would
print up, but then stop on the 'raw()' statement.
QUESTION: Why does this happen, and how can I solve the problem.
NOTE: I'm on a VAX 11/750 unber BRL 4.2 UNIX.
----------------------------------------------------------------------
#include <curses.h>
/* %cc -DDO_IOCTL t.c -lcurses -ltermcap */
main(argc,argv)
int argc;
char *argv[];
{
char buf[80];
if (argc != 2) {
fprintf(stderr,"usage: t login_name\n");
exit(1);
}
initscr();
sprintf(buf,"/bin/su %s",argv[1]);
system(buf);
#ifdef DO_IOCTL
raw();
noecho();
noraw();
echo();
#endif DO_IOCTL
clear();
move(LINES-2,0);
printw("BYE");
move(LINES-1,0);
refresh();
endwin();
}
----------------------------------------------------------------------
Thanks in advance for any help.
Douglas