1
クライアントからサーバにunixコマンドを送信しようとすると、サーバがそれを実行するのを待ってから、結果をクライアントに返します。クライアントからサーバーにunixコマンドを送信して結果を返す方法はありますか?
iveは接続が正常に動作するように管理しましたが、続行する方法はわかりません。これは私が行くはずの方向さえありますか?
#include <unistd.h>
#include <stdio.h>
#include <stdlib.h>
#include <sys/types.h>
#define MAXLINE 1024
int main(void)
{
int pfd[2], n
pid_t pid;
char buf[MAXLINE]
char test[] = "pipe test\n";
if (pipe(pfd) < 0)
perror("pipe error");
if ((pid = fork()) < 0)
perror("fork error");
else
if (pid == 0)
{
close(pfd[1]);
n = read(pfd[0], buf, MAXLINE);
printf("read %d byte: \n", n);
fflush(stdout);
write(1, buf, n);
}
else
{
close(pfd[0]);
write(pfd[1], test, sizeof(test));
}
exit(0);
}
感謝助け、TY 坂東
クライアントとサーバーが同じボックス内にある場合のみ、パイプを使用できます。それ以外の場合はTCP/IPになります。 C.f。 'man 7 ip'、' man 7 tcp'です。 –