LINUX.ORG.RU

Кто обьяснит?


0

0

Пример: есть скрипт пускаемый из inetd:

#!/usr/bin/perl my $data=<>; print $data; system("newaliases"); print "Reply\n";

к нему клиент: char *mess = "Test string\n"; . . . if (connect(s, (char *)&server, sizeof (server)) < 0) {...} if (send(s, mess, strlen(mess), 0) < 0 {...} buf = (char *)malloc(sizeof(char) * 512); if ((in = recv(s, buf, 511, 0)) < 0) {...} buf[in] = '\0'; printf("%s\n", buf); free(buf);

По идее должно вернуться следующее: /etc/mail/aliases: 24 aliases, longest 10 bytes, 246 bytes total Test string Reply а выводится только то, что вывел system("newaliases") newaliases это только пример, можно и так system("cat /etc/passwd") результат тот же. Если прочитать из сокета второй раз недостающее вернется, но почему мне надо читать втрой раз???

anonymous
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.