И это всё МОЁ

Есть сервер. Работает на локалхосте. Он создал слушающий сокет. Получив что-то на вход, он записывает в ответ msg. Клиент msg получает и отображает. Вот код:

char *msg = "HTTP/1.1 200 OK\n\n\n<h1>This is site</h1>";
/*...*/
read(socket_accept, buf, SIZE);
/*...*/
fprintf(stdout, "This is stdout\n";);
write(socket_accept, msg, strlen(msg));
fprintf(stderr, "It's stderr\n";);

Всё работает.

Но стоит увеличить третий параметр в write, например так:

write(socket_accept, msg, strlen(msg)+100);

Происходит интересное. Если клиент консольный - вроде бы всё нормально. Однако, если обратиться через браузер (127.0.0.1:port), то на страницу выдачи сначала попадает содержимое msg, затем результаты двух fprintf (начиная с первого), затем N одинаковых нераспознаваемых символов (примерно 100 минус длина результатов fprintf).

Что здесь происходит и почему?








 , , , ,