Ну, я застрял в отправке вывода stdout в массив. Как я могу решить эту проблему? Мне нужно отправить обратно вывод команды bash с кодом выполнения клиенту с сервера. Протокол TCP. Спасибо!
void func(int sockfd)
{
char buff[MAX];
for (;;)
{
bzero(buff, MAX);
read(sockfd, buff, sizeof(buff));
printf("From client: %s\n", buff);
if (strncmp("exit", buff, 4) == 0)
{
printf("Server Exit...\n");
write(sockfd, buff, sizeof(buff));
break;
}
FILE *cmd=popen(buff,"r");
while (fgets(buff, sizeof(buff), cmd))
strcpy(buff,cmd);
pclose(cmd);
write(sockfd, buff, sizeof(buff));
my_itoa(system(buff),buff);
write(sockfd, buff, sizeof(buff));
}
}