Pull to refresh
18
0.2
Егор @Tujh

C & C++ Developer

Send message

Если вдруг ссылка окажется битой снова - искать по заголовку "Его звали Пауль (заметки переводчика)"

https://earlyhawk.livejournal.com/2859364.html

нет, потому что, как минимум, можно положить переменную в кольцевой буфер, который аллоцирован ещё на этапе запуска программы и попытаться установить соединение позже, а не просто терять коннект до клиента. А отбросить подключение с ошибкой, скажем 408 или 504, можно после нескольких итераций, когда уже точно понятно, что или ресурсов нет и не будет, или запрос уже потерял актуальность.

А зачем вам идентичный-то объект? Нужен не идентичный, а работающий.

Простой пример - TCP сокет как результат вызова функции accept(). Повторный вызов вернёт другой сокет (и неизвестно через какое время), а соединение с клиентом будет потеряно.

Чушь.

Люблю таких категоричных :)

Любые объекты, которые были созданы один раз, могут быть созданы повторно. А если некоторый объект не предназначен для повторного создания - то его надо создавать снаружи блока try-catch, только и всего.

И ведь не ёкнуло от противоречая в своих же словах: всегда можно создать повторно, но если нельзя...

А файнал блоки доделают остальную работу - если будет исключение, которые Вы тут обрабатывать не готовы.

Отвечу отдельно.

В С и С++ существует множество исключений, которые программа вообще не сможет поймать средствами языка. Для примера - SEH исключения. Поймать SEH исключение возможно только специальными расширениями от Microsoft, соответственно это будет работать только для компилятора из MSVC и не переносимо не то, что на другую платформу, но даже на, к примеру, clang или MinGW.

Так что, в общем случае - finally блока в С++ нет вообще.

Я, честно, не в курсе этой проблемы

Тогда почитайте, пожалуйста, так как это самый огромный недостаток исключений конкретно в С++. Поймать исключение можно несколькими вызовами выще по стеку, когда обьекты, бросившие исключение уже уничтожены, а значит, восстановление работоспособности программы не гарантируется или невозможно.

Наверное интересно увидеть на дисплее автомобиля, мчащегося под 300 км/ч по немецкому автобану - прошивка ЭБУ выполнила недопустимую операцию и контроллер будет выключен? :)

это Вы уже специально и явно это делаете в своём коде - и несёте за это ответственность!

А разве при написании программ бывает иначе?

что делать когда память закончилась - именно на такой пост я дал свой изначальный ответ! И я ставил исключения как самое важное что тут может быть!

В некоторых ситуациях объект исключения тоже выделяет память в момент вызова, поэтому бросить std::bad_alloc не получится - приложение перейдёт в бесконечный цикл аллокации исключения и упадёт с stack overflow.

Если программист крут и разработка очень ответственно ведётся - то можно и без исключений!

Почитайте об embedded разработке, в частности - bare-metal, полезно будет, там нет операционной системы, там нет глобального пула памяти, там невозможны исключения в принципе.

Это не крутость или простота - это одна из областей где С и С++ находят большое применение сейчас.

Ну это, кажется уже современные хуки. Внешний переключатель поведения функции. Ранее только исключение было, кажется

Nope

Специально нашёл какой-то древний сайт на народе (оказывается он ещё жив) про Turbo Pascal, а это древность времён MS-DOS.

http://www.borlpasc.narod.ru/docym/br/8/8_15.htm

Вроде как все современные ЯП исключение генерируют - ну а дальше как обработаешь!

И чем это принципиально отличается от провери врезультата malloc() по месту вызова?

Более того, исключение полностью ломает стек вызова, а значит логику восстановления (roll out) очень сложно реализовать - поэтому во многих сферах исключения запрещены к использованию.

Ну и можно же попросить new не бросать исключения, тогда результат нужно будет проверять точно так же как и в случае с malloc() и это, между прочим, стандартная практика в embedded и подобных системах.

Старый Паскаль или Бейсик, или Фортран, вот изначально не имели такого доступа - и всегда генерировали исключение

Про Бейсик и Фортран не помню, а пот про Pascal слышать забавно:

getmem - Allocate new memory on the heap (аналог malloc)

new - Dynamically allocate memory for variable

Главное - что код, где возникла проблема, никак сам по себе продолжить своё выполнение не сможет! Ну только если ошибка явно будет обработана и далее явно будет разрешено выполнение 

Ну вот же, сперва отрицание, а потом правильный ответ :)

нельзя писать обработчики ошибок, обобщённые сразу для всех ошибок

А кто-то про обобщённый говорил?

С этим-то как раз все согласны, в цитате сказано, что можно испортить память другим приложениям и самой ОС. Потенциально - да, действительно можно, через уязвимости самой ОС, но это уже целенаправленное действие, а не случайность из-за обращения по невалидному адресу.

Но тут дело в том, что даже простое приложение без какой-либо проверки не упав сразу может нанести вред другим компонентам и приложениям ОС изменив их память!

Не верно со времён i386 и ОС на нём.

Читать про защищённый режим работы CPU, страничную организацию памяти и защиту памяти.

В частности

Решаемые задачи

  • поддержка изоляции процессов и защиты памяти путём создания своего собственного виртуального адресного пространства для каждого процесса

и далее по ссылкам.

вернет shared

Какой shared в Си без плюсов?

В С++ практически не используется malloc() подобные функции. Статья явно написана для чисто си, без плюсов.

STL — это коллекция компонентов, предназначенных для работы с данными. 

Дальше уже можно не читать, так как становится ясно, что за автора статью писал AI.

У codingame есть один существенный недостаток как раз в соревновательном режиме, кроме того, что там код расшаривается по желанию. Можно написать сколько угодно интересное решение, но победит олимпиадник, который засунет всё решение в одну нечитаемую строку на питоне.

А вот пазлы у них - одни из лучших для обучения.

Про Philips вообще-то сказано.

ОК. Признаю, пропустил.

Нидерланды далеки от американских или китайских "Кремниевых долин".

Что тогда понимается под "кремниевыми долинами"? В NL действительно не очень любят венчурные инвестиции, но в остальном не вижу принципиальной разницы, да и пресса не видит.

https://ufuture.com/en/the-light-of-innovation-how-eindhoven-becomes-a-dutch-silicon-valley-thanks-to-brainport/

https://bits-chips.nl/artikel/stop-saying-were-the-silicon-valley-of-europe/

https://vneconomy.vn/pm-visits-silicon-valley-of-europe.htm

https://brabantisbright.nl/creating-value-together/testimonials-showcases/advantech-this-is-the-silicon-valley-of-europe/

ну и далее в гугл или яндекс

Хотя Нидерланды и далёки от технологического развития Кремниевой долины, Пекина или Токио

Мда, как же деградировал уровень статей с появлением ChatGPT.

Во-первых, Эйндховен (и соседний Велдховен, где и расположен ASML) называют именно Кремниевой долиной Европы. Во-вторых, про технологичесткое развитие; изобретения компании Philips, сделанные в разные годы именно в Эйндховеновском подразделении:

  • Первый в мире boombox

  • Первый в мире домашний видеомагнитофон

  • CD диск (совместно с Sony)

  • Из бывших подразделений Philips, выделенных в отдельные предприятия, выросли обсуждаемая в статье ASML, NXP (оригинальное название Philips Semiconductors), Signify (до этого Philips Lighting) и ещё много других.

То же TSMC, упомянутое в статье.

Все основные производители чипов, включая Intel, NVIDIA и TSMC, вынуждены покупать эти машины ASML, потому что у них попросту нет выбора. Тайваньская TSMC имеет особое соглашение с ASML, поскольку они покупали их оборудование задолго до Intel, Samsung и других крупных производителей микросхем.

И вот ни разу не сказано, что именно Philips выступило основным инвестором TSMC на начальном этапе

Texas Instruments и Intel отказали в инвестициях. И только Philips выразило желание подписать контракт с правительством Тайваня о совместном предприятии, инвестировать 58 миллионов долларов (1987 год), передать производственные технологии и права на интеллектуальную собственность в обмен на 27.5% акций TSMC.

Вы очевидно не понимаете многих вещей

Глупый, бывает

и имеете весьма предвзятое отношение

Да, имею

в России можно относительно недорого получить лучшего из лучших.

Последний раз, если всё так радужно, почему продолжительность жизни в России существенно ниже чем в ЕС? Почему деньги на лечение собирают смс-ками?

Такого, которого в nl вам не достанется никогда....Возможно в nl используют доисторические способы планового лечения, когда условно одни и те же хирурги вырезают аппендицит, делают операции на сердце, или чинят прямую кишку. В России все устроено по-нормальному...

Вам из России, конечно виднее, чем мне, как устроена медицина в NL :)

В России вообще не так уж много живёт в деревне народа.

25% населения - чисто сельское, на них, конечно же, можно забить.

P.S. Я рад, что у вас всё очень хорошо и вы живёте в самой прекрасной стране в мире, в которой лучшая и самая современная медицина.

Я же просто оставлю тут несколько ссылок, на новости не старше недели, если они не откроются - вопросы к самому лучшему в мире РосКомНадзору

«Нет ни в одной аптеке». По всей России из продажи исчезает инсулин

В России возникла нехватка лекарства для лечения рака молочной железы

Из аптек снова начали пропадать лекарства. На этот раз жители ХМАО пожаловались на дефицит детских антибиотиков и препаратов для ревматизма.

В России возник дефицит уникального препарата от повторного инфаркта

Лекарств нет, но вы держитесь: тяжелобольные дети в России остались без медикаментов

Про Москву и "одну точку, один центр и т.д." как раз по последней ссылке

В Республике Алтай с началом нового года снова нет лекарств для детей инвалидов! В прошлый год, например, обеспечение еле дотягивало до 50%, в новом году лекарств нет совсем! Жизненно важный препарат („Дорназа Альфа“, „Пульмозим“, „Тигераза“) полностью отсутствует, „Креон“ дети получают по 5 упаковок вместо 24. Аптека ссылается на Минздрав, Минздрав ссылается на регионы, закупок нет, лекарств нет. Дети вообще без лекарств с декабря! В Минздраве разводят руками, в продаже этих лекарств нет! Упаковка „Тигеразы“ есть в Москве, ближе нет, цена на 1 неделю 7000-12000 ₽. 

У меня нет радужных очков относительно ЕС, но вот медицина и социальная среда тут не сравнимы с Россией. И да, Москва - это не Россия, это метрополия по отношению к территориям за МКАДом, со всеми вытекающими.

Разрабу надо передвинуть карточку из todo в done. А тестировщик этому должен всячески помешать

Они оба часть одной команды и если вы действительно думаете, что тестировщики "должны всячески мешать" разработчикам то у меня для вас плохие новости.

Если нет понимания чем отличный врач отличается от хорошего - дальше можно не читать.

Да ради бога. Если нет понимания, что все врачи должны быть хорошими, а недостаточно опытные не должны самостоятельно проводить сложные операции и кто за это ответственнен - дальше можно не читать.

В NL вы врача, вероятнее всего и не увидите ни разу. Он придёт только на операцию, потому как он только оперирует, а не занимается приёмом или консультациями - это делают другие люди. В силу этого врач всегда профессионал с огромной практикой.

Как вы все собрались попасть к лучшему если у вас у всех одна страховая ;)?

Пытаетесь в сарказм? Подскажу - со стороны эти реплики выглядят как попытки слепого описать слона из известной басни. То есть просто глупо.

Ну т.е. предполагалось смазывать все кешем...Все что вы покупаете за деньги - это место в отдельной очереди.

Пока не будет понимания - что взятки, покупки места в очереди и прочее это путь в никуда, страна и будет оставаться в положении, когда по ТВ смс-ками деньги на лечение собирают.

Вы имели действующий онкологический диагноз ? Вы лично ?

Какая дешёвая пропаганда...

Представляете уровень психологического давления во время ожидания плановой операции скажем в течении 2-3-6 месяцев?

Я имею представлени об уровне психологической и другой помощи и поддержки в странах ЕС. Приходящие мед.сёстры, которые будут не только уколы ставить, если надо, то и убираться в доме и еду готовить. Социальные службы постоянно работающие, а не только перед выборами или 9 мая, в том числе и психологи. А ещё множество волонтёрских организаций. Всё бесплатно.

Вы имели действующий онкологический диагноз ? Вы лично ?

Я, лично - нет. Но двое близких знакомых тут - да. И я вижу как тут система работает. Не всегда идеально, но достаточно хорошо. Одного человека лечат лекарством, которое только 4 года как прошло международную сертификацию, то есть уровень инноваций в медицине - наивысший.

Т.е. ты выбираешь конкретных врачей.

Зачем мне это делать? У меня время не лишнее, я бы хотел с семьёй побыть подольше, особенно в описываемой вами ситуации. Если медицинская система гарантирует надлежащее качество - мне без разницы кто будет врач.

Если вы живёте не в Москве, вас проконсультируюсь дистанционно.

Ну то есть всё равно скатываемся, что в стране хорошо живут только москвичи?

Если надо будет оперировать и вы живёте в зажопинске, то лучше приехать в крупный центр, в Москву, СПб, возможно и в ебурге есть.

Екат - 4-й город по населению в стране, во много третий по уровню развития. Хорошо же вы его в зажопински записали. Возможно в нём и есть специалисты, вопрос в другом - почему только в крупном центре, почему невозможно создать высокий уровень по всей стране? Зачем нужна эта элитарность "московских хирургов"?

Нет пациентов просто, чтобы много их было.

Ой ли...это в деревнях, куда скорая по 2-3 часа едет? Нет пациентов, потому что есть куча необследованных и "портящих статистику нашей больницы" людей. Статистика по продолжительности жизни в России как бы намекает...

Медицина в России была одной из причин, почему я, лично, уехал и увёз семью.

Так и у нас покрываются ОМС, даже отдельно ничего платить не надо.

За вас платит работодатель из фонда вашей же зарплаты - 5.1% в месяц от оклада, забудьте уже миф про бесплатную медицину. И у работодателя эти деньги не "лишние", это фонд вашей персональной зарплаты.

Вы бесплатно можете гарантированно попасть к лучшему в nl хирургу по своему профилю ;)?

Да, потому что они тут все отличные специалисты.

Не случайно, а гарантированно.

Да, и без взятки, даже в виде "коньяка и коробки конфет".

Выбрать его и сказать: пусть этот режет, я ему доверяю, у него более 600 таких операций в прошлом году и десятилетия опыта.

Зачем мне заниматься этим? Для этого существуют государственные контролирующие органы. Это их обязанность проинспектировать врачей и сказать - этот может проводить операции на мозге, а этот - только на колене, так как опыта недостаточно. Я зря государству налоги плачу, что бы ещё самому выбором врача озадачиваться? Может я ещё и сам оперировать должен начать?

Вас бесплатно проперируют в течении пары недель, когда планово вроде можно и в течении месяцев

Если врач решит, что случай срочный - хоть сегодня, ещё и вертолёт пришлют для транспортировки. Но с помощью взятки подвинуть очередь не получится - это да.

Страховая это хорошо, но это всегда компромисс.

Вы упускаете одну вещь. Страховая в ЕС - это именно ОМС (что буква С тут означает, кстати?), только человек сам может выбрать объём включенного в страховку. Посещение врача общей практики - бесплатно (за счёт страховой). Всё, что связано с угрозой жизни - оплачивается страховой без вопросов, самостоятельно платится - только косметология, контрацепция, не обязательные обследования и разные ибупрофены (и то, это можно включить в объём страхового случая, только платить придётся больше, может 180 в месяц), и то, в NL существует лимит на подобное, если, через врача, на лекарства, медосмотры и т.п. потрачено более 385 евро в течении года - всё, что сверх этой суммы, страховая оплачивает в полном объёме.

То есть, максимум что вы платите - 140 евро в месяц (аналог ОМС) и 385 евро в год, от чего бы вас не лечили и в какую передрягу бы вы не попали. Ну а уровень медицины можно просто сравнить спросив, собирают ли в ЕС деньги на лечение у "лучших московских хирургов".

Консультация ведущего московского хирурга...

То есть если я живу не в Москве, а в Екатерибурге то для хорошего уровня медицины мне нужно в Москву ехать или сразу ползти на кладбище?

Хотите - верьте, хотите - нет, дело ваше.

Information

Rating
2,695-th
Location
Eindhoven, Noord-Brabant, Нидерланды
Date of birth
Registered
Activity

Specialization

Embedded Software Engineer, Scrum Master
Lead
C++
C
Embedded system
Embedded Linux
Cmake
Bash
Docker
CI/CD
Git
Python