Date: Tue, 18 Jul 2000 02:43:04 +0400 From: "Вова Камушкин" <debian@mail.ru> To: freebsd-questions@FreeBSD.ORG Subject: tty programming Message-ID: <E13EJbL-000I2a-00@f6.mail.ru>
index | next in thread | raw e-mail
Hi im Ref from Russia.
Im realy need your help. Sory for bad english -)
Ok.
Im wrote program (on freebsd 4.0) which open next free "in system" pty,
associated wich them std streams and executed /bin/sh
but I have one problem. The progam executed im background mode:
bash#tty
ttyp3
bash#./prgoa
bash#
look in ps
bash#ps aux
............
root 1295 0.0 0.6 620 364 p4 Ss+ 1:51 0:00.00 (sh)
............
bash#
As you can see the /bin/sh was executed in p4 "nex free pty".
And now my qestion :
I can't execute the program in foreground mode. In real time im can execute
commands in sh opended by this program only trogh next cmd line :
bash#watch -W tty;
Whow I cam run this program in foreground mode ?
I have use next algorithm:
main()
| int linedesciplene;
| int master_side;
| int slave_side;
| char tty_name[64]="NULL";
| struct terios tio;
| struct winsize w;
| etc
|
|
|
tcgetattr(stdin,&tio) /*get termios strus from already opended tty and
| associated with std streams */
|
set up struct winsize
w.ws_row = 25;
w.ws_col = 132;
w.ws_xpixel = w.ws_ypixel =0;
|
openpty(&master_side,&slave_side,tty_name,&tio,&w);
/*openpty will be open next free pty with tio and w
and return master descriptor slave descriptor man path
in tty_name char variable*/
|
fork(){
| /* In chaild */
|
pgid=setsid();
|
|
login_tty(slave_tty);
/* will be made the slave desc controlling tty */
/* and will be accociated slave desc with std streams */
|
tcsetpgrp(stdin,pgid);
|
Setup line discepline TTYDIC;
by iosctl()
|
|
exec(/bin/sh)
|
}
}
/*end*/
So imho login_tty() func must associate just opended tty with std
stream like im read in man and then exec(/bin/sh) must work in foreground
like this:
bash#tty
ttyp3
bash#./proga
#tty
ttyp4
#
but I can't made this result;
So.
Please help me Im realy need your help becouse this is module of big program and that stoped all project. If you can't help, please say whea I can
read abou this.
debian@mail.ru
Again sory for bad english.
To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-questions" in the body of the message
help
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?E13EJbL-000I2a-00>
