[clug] Pseudo terminals
David Tulloh
david at tulloh.id.au
Wed Jul 18 12:38:34 GMT 2007
Brad Hards wrote:
> On Wednesday 18 July 2007 17:58, Adrian Blake wrote:
>
>> Within a Fortran program I can open up a terminal with a system command
>> like: call system("xterm -T new &" , result)
>>
>> This creates a device /dev/pty/x x is some number
>>
>> I then would like to be able to direct output to that device: OPEN
>> (UNIT=15, FILE="/dev/pts/x", STATUS="OLD", ACCESS="STREAM") , but how can I
>> determine the value of x?
>>
>> I could do : ps -ax | grep pty/ and then pick the greatest numbered
>> pty. Clumsy under program control.
>>
>> Any suggestions?
>>
> I haven't tried this, so this is a bit of a stretch, but how about creating
> the pty yourself, and then passing the pty number to xterm (using -S)
>
> I'm not sure how you would create the pty in FORTRAN (I think it has to be
> upper case :-). There is a bit of information in pty(7) about how
> posix_openpt() works, or maybe you could just create a helper application in
> C and call that from your FORTRAN app.
>
> Brad
>
That looks like a nice clean approach Brad. Another alternative there
is the uber-hackish approach, get the xterm to report it's own tty. In
crude pseudo code:
$random = some unique random number/string
xterm -T new -e "tty > /tmp/$random; $shell"
$x = read(/tmp/$random);
David
More information about the linux
mailing list