Mickey_from_nsk
Advanced Member | Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору Qraizer Цитата: Вот только с переводом накладочка - так перевести можно ещё с пяточек имён функций. Если б кто объяснил, почему fork, а не, например, rebirn или там dptsk, а заодно так ещё и поделился опытом приобретения навыков по расшифровке смысла имён таких функций... Мы можем привыкнуть к мнемоничности, но может быть лучше сэкономить на комментах? | Это - одна из немногих функций, которая не мнемонична. Просто fork - вилка, ветвление и т.д. И не надо различных spawnxxx Цитата: Чтобы связать два процесса, есть более приятные методы, а на предмет неочевидности - просто без комментавиев: по мне, так вполне всё очевидно пишется. Видимо это дело привычки к архитектуре, т.е. субъективно ощущается. И CreateProcess() тоже изумителен, не в пример spawn(). | Я думаю, никто здесь не навязывает своего виденья крутости архитектуры. Собственно по этому я все еще пишу на эту тему. Серьезно, давненько ничего такого спокойного и толкового не было. Чем отличается CreateProcess от fork... Попытаюсь объяснить почему мне нравится fork и не нравится CreateProcess. Наверно потому, что в UNIX CreateProcess можно организовать путем последовательного вызова fork и exec, а в виндах обратное невозможно Виндовс ориентирован исключительно на многопоточность, это следует из всей архитектуры его вызовов - порождение нового процесса нужно только для вызова другого файла, раздвоить собственный процесс невозможно. Вцелом, я уже давно смирился с многопоточностью, научился ее использовать во благо, а не для создавания новых ошибок и ничего не имею против, но изредка возникают задачи, которые изящнее было бы решить многозадачностью. Ну не всегда надо шарить все пространство переменных и не все переменные можно запихать в стек. Кроме того, вопросы расшаривания (пардон за такой термин, но по русски он звучит еще корявее) дескрипторов как файлов, так и сокетов и др. устройств встают достаточно остро. Вобщем, как в MIB "А на самом деле - не спрашивайте почему я в нее выстрелил" Что же касается setjump - это вообще странная штука и насколько я помню, даже в юниксе ее использовать не рекомендуют, не говоря про С++ Цитата: Пути не заумные, а разные, для разных ситуаций эффективнее те или иные. А что, не заметно? Странно, мне казалось это очевидным... | Слегка спорное замечание. Я, например, считаю 150 строк кода для организации обмена информацией по каналу сильно заумным способом. Хотя, наверно виндовс предлагает в этом случае делать обмен через Messages, но по ряду причин мне нужен был канал и перенаправление стандартного ввода-вывода. Кроме того, при переходе на виндовс я был удивлен тем "разнообразием" (хотя наверно без кавычек" функций АПИ, которые требуются чтобы создать тот или иной стрим (поток но не thread) в этой ОС в отличие от UNIX. Про WinSock тоже есть что порассказать... Честно говоря, кроме графики я не видел преимущества виндовс по сравнению с юникс. В графике - тоже не видел, поскольку XWindows освоить не успел. Теперь - по вопросу именования функций. Когда начинал осваивать С, меня всегда больше всего убивало шаманское слово stdio. Я его начал понимать только когда разобрался, что же оно означает. Но сразу после этого оно запомнилось и проблем далее не вызывало. То же самое с другими вызовами. Я понимаю, что dlopen для не совсем знающего о чем речь человека звучит хуже чем LoadLibrary, но (ИМХО) оно точнее, ибо в нем еще есть буковка d, которая говорит о том, что это - динамические библиотеки Согласен, что в виндовс названия функций немного точнее (CreateFile оставим для отдельного исследования), но в нем нет единого стандарта именования функций, вот все и изгаляются как могут. Особенно, как тут отмечалось, нравится суффикс Ex, который иногда говорит, что функция без него - устарела, а в других случаях - что в функции с ним больше параметров. Кстати про параметры. Как отмечалось выше, в юниксе существует минимализм в передаче параметров. Ну не видел я там АПИшных функций с количеством параметров больше 4 (Может видел, но забыл - напомните мне их). Зато WinAPI в этом радует. Мало того, что половина параметров - структуры, так и по 8-10 параметров для функции - не редкость. При этом половина может быть NULL К чему это я? А! Да! .NET Framework - новое слово в развитии API, которое было сказано в следствие того, что программисты из Microsoft сами задолбались уже писать на WinAPI. Я так думаю. И несмотря на новизну, оно не дотягивает до лаконичности UNIX. Ну и post scriptum. Сильно надеюсь, что Holy wars не разгорятся с новой силой. |