请问输出重定向只能将输出定向到一个文件吗?可不可以将其重定向到一个变量中呢?如果可以,那么是如何实现的呢?

中文QNX 讨论: 欢迎大家灌水,讨论有关QNX 问题。
回复
tragicalwind
Senior Member
帖子: 105
注册时间: 周二 3月 09, 2004 8:45 am
联系:

请问输出重定向只能将输出定向到一个文件吗?可不可以将其重定向到一个变量中呢?如果可以,那么是如何实现的呢?

帖子 tragicalwind » 周一 12月 12, 2005 10:30 am

请问输出重定向只能将输出定向到一个文件吗?可不可以将其重定向到一个变量中呢?如果可以,那么是如何实现的呢?

xtang
Moderator
帖子: 1816
注册时间: 周五 9月 12, 2003 4:14 am
来自: China

帖子 xtang » 周二 12月 13, 2005 11:50 pm

不懂,什么叫“输出到一个变量”?具体你想实现什么?

liug
Moderator
帖子: 130
注册时间: 周五 9月 12, 2003 4:14 am
来自: 美国 加州

帖子 liug » 周三 12月 14, 2005 2:36 am

你可以用反单引号。

variable=`program`

tragicalwind
Senior Member
帖子: 105
注册时间: 周二 3月 09, 2004 8:45 am
联系:

有关telnet问题的询问,急!

帖子 tragicalwind » 周三 12月 14, 2005 9:56 am

xtang 写了:不懂,什么叫“输出到一个变量”?具体你想实现什么?
你好!
我在photon中使用伪终端,然后通过telnet登录到其它机子(A)并启动该机子上的程序C,那么程序C的输出会显示在photon程序所使用的伪终端上。我现在想获得C程序输出的信息,将其保存到一个变量,用图形界面的形式显示出来。请问如何才能获得程序C输出的信息呢?

tragicalwind
Senior Member
帖子: 105
注册时间: 周二 3月 09, 2004 8:45 am
联系:

有关telnet问题的询问,急!

帖子 tragicalwind » 周三 12月 14, 2005 9:57 am

liug 写了:你可以用反单引号。

variable=`program`
这是什么意思?可以说清楚些吗?谢谢了。

xtang
Moderator
帖子: 1816
注册时间: 周五 9月 12, 2003 4:14 am
来自: China

帖子 xtang » 周三 12月 14, 2005 9:51 pm


tragicalwind
Senior Member
帖子: 105
注册时间: 周二 3月 09, 2004 8:45 am
联系:

有关telnet问题的询问,急!

帖子 tragicalwind » 周四 12月 15, 2005 9:22 am

你好!
popen()我看了。也试了一下。感觉不行。
我的问题是这样的。
假设有两台机子A和B。在B上有一程序C。
假设C程序就一句话:printf("How are you!\n");
我在A上用telnet登录到B,然后在B上启动程序C。那么现在程序C会将printf()中的"How are you!"显示在A计算机的屏幕上。
我现在同样用telnet登录到B并在B上启动程序C,但是,我不想让程序C将printf()中的“How are you!”显示在A计算机上,而是想将这句话用对话框或文本框的形式显示出来。所以。我现在的问题是如何在A上获得程序C输出的内容。如果我能够在A上获得C输出的内容,我就可以用图形界面的形式将程序C的输出显示出来。
popen()我试了一下。我在A计算机上调用popen,启动程序C。但是,这时C是在A上运行的。也就是说C运行时占用的是A的CPU,B机子是空闲的。这显然是不可以的。如果用popen(),我不知道如何才可以让程序C运行在B机子上,然后在A机子上得到C的输出呢?
请帮我解决一下这个问题,好吗?我都考虑了一个月了。急死了。我这里没有可以问的人。难呀。帮帮我,好吗?

tragicalwind
Senior Member
帖子: 105
注册时间: 周二 3月 09, 2004 8:45 am
联系:

有关telnet问题的询问,急!

帖子 tragicalwind » 周日 12月 18, 2005 8:06 pm

xtang:
你好!
popen()我看了。也试了一下。感觉不行。
我的问题是这样的。
假设有两台机子A和B。在B上有一程序C。
假设C程序就一句话:printf("How are you!\n");
我在A上用telnet登录到B,然后在B上启动程序C。那么现在程序C会将printf()中的"How are you!"显示在A计算机的屏幕上。
我现在同样用telnet登录到B并在B上启动程序C,但是,我不想让程序C将printf()中的“How are you!”显示在A计算机上,而是想将这句话用对话框或文本框的形式显示出来。所以。我现在的问题是如何在A上获得程序C输出的内容。如果我能够在A上获得C输出的内容,我就可以用图形界面的形式将程序C的输出显示出来。
popen()我试了一下。我在A计算机上调用popen,启动程序C。但是,这时C是在A上运行的。也就是说C运行时占用的是A的CPU,B机子是空闲的。这显然是不可以的。如果用popen(),我不知道如何才可以让程序C运行在B机子上,然后在A机子上得到C的输出呢?
请帮我解决一下这个问题,好吗?我都考虑了一个月了。急死了。我这里没有可以问的人。难呀。帮帮我,好吗?

xtang
Moderator
帖子: 1816
注册时间: 周五 9月 12, 2003 4:14 am
来自: China

帖子 xtang » 周三 12月 21, 2005 1:01 am

只有QNET,可以实现你所要求的,但两台机器双方必须都是QNX.

tragicalwind
Senior Member
帖子: 105
注册时间: 周二 3月 09, 2004 8:45 am
联系:

有关telnet问题的询问,急!

帖子 tragicalwind » 周三 12月 21, 2005 9:06 am

xtang 写了:只有QNET,可以实现你所要求的,但两台机器双方必须都是QNX.
我的两台机子都是QNX。请问如何实现?麻烦详细解说一下,好吗?

xtang
Moderator
帖子: 1816
注册时间: 周五 9月 12, 2003 4:14 am
来自: China

帖子 xtang » 周三 12月 21, 2005 6:09 pm


tragicalwind
Senior Member
帖子: 105
注册时间: 周二 3月 09, 2004 8:45 am
联系:

有关telnet的问题,急!

帖子 tragicalwind » 周一 12月 26, 2005 10:39 am

xtang:
你好。你给我的有关Qnet我看了,但对我遇到的问题还是一筹莫展,你能否再详细地指点一下?我都困了一个多月了。麻烦你了,好不好。

xtang
Moderator
帖子: 1816
注册时间: 周五 9月 12, 2003 4:14 am
来自: China

帖子 xtang » 周二 12月 27, 2005 8:19 am

你先把 A 和 B 两台机器之间的QNET调通,(在A上 ls /net/b/ 可以正常工作),然后只要在A上运行:

# on -f /net/b /net/b/full/path/myprogram > /net/a/myoutput

tragicalwind
Senior Member
帖子: 105
注册时间: 周二 3月 09, 2004 8:45 am
联系:

有关telent的问题。

帖子 tragicalwind » 周二 12月 27, 2005 10:05 am

xtang 写了:你先把 A 和 B 两台机器之间的QNET调通,(在A上 ls /net/b/ 可以正常工作),然后只要在A上运行:

# on -f /net/b /net/b/full/path/myprogram > /net/a/myoutput
这样做不还是把B中myprogram程序的输出信息保存到A机器的myoutput文件中吗?我想实现的目的是将B中程序的输出保存到A中一个程序的内存变量中。
而不是保存到A机子上的文件中。

xtang
Moderator
帖子: 1816
注册时间: 周五 9月 12, 2003 4:14 am
来自: China

帖子 xtang » 周三 12月 28, 2005 12:42 pm

你先把这一步做通了,再考虑如何spawn(),如何rediret输出,如何接收redirect的输出等等。

回复