通过程序获得rsh输出

时间:2015-02-24 16:34:31

标签: rsh

我有一个小型客户端程序,它使用rsh来获取文件的inode编号。我面临的问题是rsh命令正在执行,但父级没有读取输出。

如果我运行任何命令,请说" ls"在本地执行,我可以看到输出。

/* Child */

close pipe[0];

dup2(pipe[1],STDOUT_FILENO);

execv("/usr/bin/rsh","ls","-i","a.txt");

/* Parent */

close pipe[1]

bytes  = read pipe[0]

/* bytes always is 0. But if I have ls executed by child, 
 * I can see full output */

1 个答案:

答案 0 :(得分:0)

任何参赛者?

我想我之所以没有父母看到的输出。

据我了解," rsh"需要一个tty终端并在前台运行才能输出它。

当我在shell的后台运行rsh时,我可以看到没有输出。

root @ vmx2_p2_re1%rsh -n -T re0 ls& [9] 97216 根@ vmx2_p2_re1% [9]完成rsh -n -T re0 ls root @ vmx2_p2_re1%

当我在前台跑步时,我可以看到输出:

root @ vmx2_p2_re1%rsh -T re0 ls 的.cshrc 。历史 。登录 。轮廓 junos.base.conf

当我尝试正常命令并让它在后台运行时,我可以看到终端上的输出。

root @ vmx2_p2_re1%ls& [9] 97297 root @vmx2_p2_re1%1 a.txt dfwc.out filter-define.conf filter-define.conf.bk

[9]完成ls

有没有人知道如何获取rsh的输出,而不是从shell调用,而是从守护进程调用OR在后台调用?

非常感谢!