【发布时间】:2026-01-13 08:10:02
【问题描述】:
我打开了一个套接字,用于连接客户端和服务器。
我正在实现远程执行,因此我想更改文件描述符表,这样通常会转到标准输出的调用实际上会通过套接字输出到客户端。
现在我有服务器分叉,然后使用 system() 命令执行任何命令。
如何操作文件描述符表?
这是我正在使用的代码:
我正在使用选择。我正在使用的套接字是接受调用返回的套接字(这都是服务器端)。
dup2(S,1);
int retval = fork();
if (retval > 1)
{
system(receive.text);
return 0;
}
现在这样做的结果是,没有文本被打印到服务器(因此它显然没有连接到服务器的标准输出中),但客户端上也没有显示任何内容)。
我是否需要在客户端做更多的事情才能解决这个问题(比如 recv() 调用?),我是否使用了正确的套接字?
谢谢。
【问题讨论】:
标签: c file-io client-server file-descriptor