Search
Write a publication
Pull to refresh
0
@FDsagiziread⁠-⁠only

User

Send message

Обработка Segmentation Fault в C++

Reading time3 min
Views72K

Вводная


C++ является «небезопасным» («unmanaged») языком, поэтому программы могут «вылетать» — аварийно завершать работу без сохранения данных пользователя, сообщения об ошибке и т.п. — стоит только, например, залезть в не инициализированную память. Например:
void fall()
{
  char * s = "short_text";
  sprintf(s,"This is very long text");
}

или
void fall()
{
  int * pointer = NULL;
  *pointer = 13;
}


Всем было бы лучше, если бы мы могли «отловить» падение программы — точно так же, как в java ловим исключения — и выполнить хоть что-то перед тем, как программа упадет (сохранить документ пользователя, вывести диалог с сообщением об ошибке и т.п.)

Общего решения задача не имеет, так как C++ не имеет собственной модели обработки исключений, связанных с работой с памятью. Тем не менее, мы рассмотрим два способа, использующих особенности операционной системы, вызвавшей исключение.

Читать дальше →

Создаем рекурсивные ярлыки в Windows

Reading time5 min
Views124K
Все мы знаем, что такое ярлык. А что будет, если сделать ссылку ярлыка самого на себя?
Создание ярлыка на ярлык приводит к его копированию. И что будет, если принудительно создать побайтно такой ярлык?

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

Зайти в такую папку обычными файловыми менеджерами будет невозможно.

Но тут не обошлось без ярлыка, и я расскажу, как это сделать и для чего можно использовать.
Читать дальше →

Как определить все мониторы и их разрешения

Reading time1 min
Views27K
image
Недавно возился с нормальной инициализацией окна, и стояла задача задетектить все мониторы и их разрешения. Оставлю тут решение для потомков.
Читать дальше →

Договориться можно обо всём

Reading time2 min
Views40K
Добрый день, уважаемые посетители Хабра.



Несколько дней назад я прочитал замечательную книгу Гэвина Кеннеди «Договориться можно обо всём». Как верно отмечает автор, мы ведем переговоры с первых лет своей жизни, начиная еще до того, как научимся толком разговаривать, и важность правильно вести переговорный процесс, что в личной жизни, что в работе, очень сложно переоценить. Особенно важно умение вести переговорный процесс в IT индустрии, где заказчики и исполнители зачастую говорят на разных языках, и совершенно по-разному оценивают различные события и факты. Книга произвела на меня отличное впечатление, и я искренне рекомендую всем, при наличии свободного времени, ее прочитать. В процессе ознакомления с материалом, Гэвин предлагает читателям несложные тесты, и, далее, дает развернутые комментарии тех или иных наших ответов, классифицируя читателей по 4 категориям: Ослы, Овцы, Лисы и Совы, согласно умению вести переговорный процесс. Именно эти тесты, а точнее их автоматизация, и побудили меня написать этот пост на Хабре. Хотите проверить свой талант переговорщика?
Хочу! Дальше!
2

Information

Rating
Does not participate
Registered
Activity