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

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

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

你可以用反单引号。

variable=program

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

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

popen()?

http://www.qnx.com/developers/docs/6.3.0SP2/neutrino/lib_ref/p/popen.html

你好!
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:
你好!
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的输出呢?
请帮我解决一下这个问题,好吗?我都考虑了一个月了。急死了。我这里没有可以问的人。难呀。帮帮我,好吗?

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

我的两台机子都是QNX。请问如何实现?麻烦详细解说一下,好吗?

http://www.qnx.com/developers/docs/6.3.0SP2/neutrino/user_guide/qnet.html

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

你先把 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机子上的文件中。

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