[英]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.