|
ru.linux- RU.LINUX --------------------------------------------------------------------- From : Vladimir Butenko 2:5020/400 14 Mar 2001 05:08:34 To : All Subject : Re: Linux TCP/IP стек (was Microsoft bla bla bla ... Linux) -------------------------------------------------------------------------------- A.N.Kuznetsov <kuznet@ms2.inr.ac.ru> wrote in message news:98lq3c$sg4@minus.inr.ac.ru... > Andrey S. Chistyacov (andrey@chis.nnov.ru) wrote: > : Даа... Прочитал я сам себя и понял, пиво то вещь конечно полезная, но мозги > : на некоторое время угнетает :( > > Есть здесь вопросы, есть. Пиво --- полезный, укрепляющий дух напиток, однако.8) > > Hапример: пусть sender пишет "A","B","C". Mожет ли процесс #1 получить > из read "AC" одним куском, а процесс #2 --- "B"? Выглядело бы это > весьма погано. Как это _должно_ быть, я без понятия. > Hо linux-2.0/2.2 действительно может вернуть "AC". > 2.4 --- не может, BSD, кажется, не может тоже. > > Забавно, что c pipe ситуация обратная. 2.2 всегда ведет себя разумно, > а вот 2.4 может и пошинкованный результат вернуть. Вот такие дела. Алексей. Есть такое понятие в программировании - "неопределенный результат". Hет там никакого "должно" - "не должно". Программа, которая использует что-то, что выдает неопределенный результат - неверна. Пример предельно простой, из букваря: a[0] = 1; a[1] = 10; a[2] = 100; i = 0; printf("%d\n",(a[i++] - a[i++]) * a[i++]); Что выдаст эта программа? То же самое с двумя гавриками, читающими один сокет. Они будут что-то получать. Hо в какой последовательности и как много - "не определено". Точка. Как имплементатору захочется, так и сделает - и если что-то навернется из-за этого - то это не имплементаторские проблемы. > : Кстати надо будет проверить, один из recv скорее всего вылетит с 0 длиной > > 0 - это EOF и только EOF. А он может и 0 выдать :-) если поклянется, что и ПОСЛЕ этого будет выдавать только ноль. Это не хорошо, но можно поспорить, что и такое поведение не противоречит определению функции. Только сильно спорить придется :-) > Alexey --- ifmail v.2.15dev5 * Origin: Gamma NNTP server Moscow Russia (2:5020/400) Вернуться к списку тем, сортированных по: возрастание даты уменьшение даты тема автор Архивное /ru.linux/759184b7eb30.html, оценка из 5, голосов 10
|