繁体   English   中英

将stdout和stderr重定向到套接字以获取分布式shell程序

[英]Redirect stdout and stderr to socket for a distributed shell program

我制作了一个分布式shell程序,它有一个客户端和服务器。 客户端向服务器发送命令请求,服务器在本地执行该命令,并且应该将该命令的结果输出到客户端。 我无法弄清楚如何将stdout / stderr重定向到客户端。 我使用execvp来执行命令。

我想我可能要使用dup2? 但我无法弄清楚如何正确使用它。 有帮助吗?

您只需要使用dup2()将套接字的文件描述符复制到stderr和stdout文件描述符上。 这与重定向到管道几乎是一回事。

cpid = fork();
if (cpid == 0) {
  dup2(sockfd, STDOUT_FILENO);
  dup2(sockfd, STDERR_FILENO);
  execvp(...);
  /*... etc. etc. */

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM