Contributed by Zombie falken
on Aug 11, 2001 at 02:50 UTC
Q&A
> input and output
Description: I have an application that i'm executing with in perl with the system("cmd &") call. For some reason it is requiring it have STDIN. I have closed all STDIN, STDOUT STDERR fd's and tried the POSIX setsid(). All with no luck. Is there anyway in perl I can switch the tty with posix functions and (or) fool the application into a another non-used tty?
Answer: Changing tty's in perl contributed by kjherron The posix way to obtain a new controlling tty is
to first get rid of the old one, as you've outlined,
and then open a new one; the first one opened
becomes the new controlling tty. You can't use "/dev/tty"
for this purpose of course, you'd have to open a
real tty device. These are /dev/pty*, /dev/console,
and devices corresponding to actual serial ports.
Is the program insisting on a tty, or just a valid
stdin? Instead of just closing stdin/stdout/stderr
you can try opening them to /dev/null, and see if
that is sufficient. If it needs a tty, one can
often use /dev/console. |
Please (register and) log in if you wish to add an answer
Posts are HTML formatted. Put <p> </p> tags around your paragraphs. Put <code> </code> tags around your code and data!
Read Where should I post X? if you're not absolutely sure you're posting in the right place.
Please read these before you post! —
Posts may use any of the Perl Monks Approved HTML tags:
- a, abbr, b, big, blockquote, br, caption, center, col, colgroup, dd, del, div, dl, dt, em, font, h1, h2, h3, h4, h5, h6, hr, i, ins, li, ol, p, pre, readmore, small, span, spoiler, strike, strong, sub, sup, table, tbody, td, tfoot, th, thead, tr, tt, u, ul, wbr
Outside of code tags, you may need to use entities for some characters:
| |
For: |
|
Use: |
| & | | & |
| < | | < |
| > | | > |
| [ | | [ |
| ] | | ] |
Link using PerlMonks shortcuts! What shortcuts can I use for linking?
See Writeup Formatting Tips and other pages linked from there for more info.
|
|