|
|
ru.linux- RU.LINUX --------------------------------------------------------------------- From : Eugene Korovin 2:5080/196.72 24 Sep 2001 18:11:26 To : Eugeny Balahonov Subject : Re: Программирование для Linux -------------------------------------------------------------------------------- EB>>> То одной константы не хватает, то функция не так определена... EB>>> Короче не знаю кто виноват - то ли Чан, уверяющий что он EB>>> описывает POSIX, то ли Linux ограниченно его поддерживающий. сравни то, что пишет он с POSIX (http://anubis.dkuug.dk/jtc1/sc22/open/n3161/). afaik, нет ни одной ОС на 100% соответствующей POSIX'у. AS>> Кусок в студию!(RU.UNIX.PROG) EB> Ух! Сейчас дома сижу. В понедельник с работы кину. вот с этого и надо было начинать, телепаты в соседней эхе. EB>>> Вот где преимущество Win32 ;) Зашел на msdn.microsoft.com и там EB>>> каждая закорючка в системе описана совершенно нахаляву. Зачем EB>>> при такой документации исходники? ;) В msdn описан далеко не весь API... еслиб его было достаточно, люди бы не выискивали нужные им функции soft-ice'ом;-))) EB> Hу и повторяю для тебя те вещи, которые из описания отдельных фунций EB> по man и info узнать невозмножно: info - это не описание отдельных функций. `pinfo libc' и UNIX programming faq (кажется faq.org или faqs.org) нужно было прчитать в первую очередь... EB> Вот, к примеру, когда я писал потоки, обслуживающие сетевых клиентов Для начала подумай, насколько в твоем случае целесообразно использование потоков (aka нитей)... может дешевле будет обойтись fork()'ом ? тот же апач не использует нити - он просто fork'ается n-раз при запуске... EB> под Win32, часто пользовался функциями EB> WaitForSingleObject()/WaitForMultipleObjects(). Ими EB> можно ждать все что угодно: мьютекс, событие, сокет, поток и т.д. Причем в EB> любой комбинации. Очень удобно, когда ждешь прихода данных от пользователя EB> через некий интерфейс и одновременно ждешь данные от другого потока или EB> процесса. EB> Как такое сделать в Unix? Там, как я поглядел, нельзя одновременно ждать EB> мьютекс и сокет. Или данные из последовательного порта вместе с данными из EB> сокета. Каким макаром правильно решать такие задачи под Linux/Unix? EB> Может функция select() чего хитрого умеет? в win32 select() может ожидать событие *только* от сокета, в UNIX же она ждет событие от дескриптора файла, который может быть не только сокетом...к тому же она может быть прервана сигналом (напр. SIGCHLD) и.т.п. И еще: An alternative to poll/select is to let the kernel inform the application about events via a SIGIO signal. For that the FASYNC flag must be set on a file descriptor via fcntl(2) and a valid signal handler for SIGIO must be installed via sigaction(2). See the SIGNALS discussion below. плюс читай man 7 unix, man 7 signal, man 7 socket PS: рекомендую "Advanced Programming in the Unix Environment" W. Richard Stevens Исходники примеров из книги есть на http://www.kohala.com/start/apue.html PPS: и хватит уже со своими "заменим все, что мы не можем понять на новомодные технологии, которые мы понимаем не лучше" With best regards, Eugene [ Registered Linux user #194650 ] --- tin/1.5.8-20010221 ("Blue Water") (UNIX) (Linux/2.4.9 (i586)) * Origin: Powered by SlackWare Linux - http://slackware.com (2:5080/196.72) Вернуться к списку тем, сортированных по: возрастание даты уменьшение даты тема автор
Архивное /ru.linux/40047fbfa10c.html, оценка из 5, голосов 10
|