Задать вопрос
  • Почему при вызове деструктора не меняется переменная?

    @res2001
    Немного разжую:
    aobj1 = new a; // создается объект в динамической памяти, вызывается конструктор по умолчанию
    
    /* 1. создается временный объект и вызывается его конструктор с параметром (a(2)), 
       2. вызывается операция присваивания копированием по умолчанию для объекта *aobj1 и в этот объект побайтно копируется содержимое временного объекта. 
       3. Для временного объекта вызывается деструктор, так что память выделенная для bObj будет освобождена, что делает объект *aobj1 не корректным (это проявится при любом обращении к aobj1->bObj) */
    aobj1[0] = a(2); 
    
    delete aobj1; // вызывается деструктор *aobj1
  • Как отрисовать курсор в cosmos os?

    @res2001
    Foxik1,
    Как это сделать?

    Вы же пишете свою ОС. Вот и придумайте как это сделать и реализуйте механизм драйверов в ядре, а потом уже и драйвер напишете. В каждой ОС - это делается по своему.
    Я в c# 2 недели

    Что на шарпе уже можно ядро ОС написать? До чего дошел прогресс :)
  • Почему Git-команда ведёт себя так?

    @res2001
    Добавлю.
    Многие линуксовые консольные утилиты ведут себя подобным образом, так что привыкайте. Кроме q там есть и другие управляющие клавиши.
    Для справки нажмите там h.
  • Где в памяти располагаются переменные и массивы?

    @res2001
    Герман,
    Ведь область стека при загрузке программы в память обнулена.

    Возможно первоначально стек и обнулен, я тут не в курсе, но на это рассчитывать не стоит, т.к. стек постоянно меняется и ты не можешь гарантировать, что вот эта конкретная переменная попадет в "обнуленную" область стека, которая не была еще использована. Когда из стека "выталкиваются" (pop) данные, то память в стеке никак не изменяется, просто уменьшается (увеличивается) указатель стека. Поэтому стек всегда содержит огрызки данных предыдущих вызовов и размещенных там переменных.
    И даже в main нет такой гарантии, т.к. до main выполняется куча кода стандартной библиотеки. На самом деле точкой входа в программу является вовсе не мейн. Если я правильно помню, то точкой входа в программу является _start, которая спрятана внутри стандартной библиотеки.

    Массив не может быть частично инициализированным. Он либо не инициализирован (но память выделена), либо инициализирован. Все элементы, которые вы в явном виде не инициализируете, будут заполнены нулями компилятором.

    Не инициализированные глобальные и статические данные лежат в сегменте bss.
    Инициализированные - в data.
    Локальные переменные функций лежат на стеке, не зависимо от того инициализированы он или нет. Код инициализации встраивается в код функции компилятором.
    Динамические данные лежат в куче.
  • Почему вместо копирования через bat файл у меня открывается копируемый файл?

    @res2001
    Egor Irvin, cmd /c - это запуск командной строки винды cmd.exe с ключем /c.
    Про ключи можно почитать, запустив cmd /?

    Дальше идет команда, которую выполняет cmd.
    Все батники выполняются в cmd.exe, даже если вы не запускаете явно ее руками, она все равно запускается неявно и внутри выполняет ваш батник. Сам по себе батник не способен выполнятся - это всего лишь текстовый файл. cmd.exe читает команды в батнике и исполняет их.
  • Почему вместо копирования через bat файл у меня открывается копируемый файл?

    @res2001
    Видимо, в startup надо положить ярлык на запуск cmd.exe /c <путь к батнику>
  • Почему забивается кеш DNS?

    @res2001
    varfi, Какие-то еще подозрительные вещи на компе происходят? Возможно вы подхватили зловреда.
    Проверьте загрузку процессора, сети, диска когда интернет в очередной раз отвалится.

    Про nslookup:
    nslookup google.ru
    Можно подставлять любой домен. Утилита должна вывести IP адрес заданного домена. Для проверки доступности затем можно пропинговать полученный IP адрес. Правда они не все отвечают на пинги, но гугл с яндексом отвечают :)
  • Почему забивается кеш DNS?

    @res2001
    varfi, Настройте ДНСы яндекса или гугла, адреса легко ищутся в интернете. У гугла адрес ДНС 8.8.8.8.
    В роутере всего лишь промежуточный ДНС, он сам только пересылает запросы на внешние сервера ну и как кэш то же работает. ДНСы провайдеров могут тупить или выдавать устаревшие адреса, все зависит от степени безответственности данного конкретного провайдера.
  • Почему забивается кеш DNS?

    @res2001
    cmd/bat из тегов, думаю, стоит убрать.

    Чей ДНС сервер используете?

    Судя по тексту ошибки проблема не в кеше, а в том, что ДНС сервер долго отвечает или совсем не отвечает и клиент отваливается по таймауту.
    Это можно протестировать с помощью утилиты nslookup - она шлет прямые запросы ДНС серверу, минуя резолвер ОС.
  • Сможет ли взаимодействовать 2 разные Unix системы?

    @res2001
    varfi,
    это просто для примера, что в голову пришло. вопрос в том будут ли взаимодействовать дебиан и ред хат системы между собой?

    Что им может помешать взаимодействовать? Тут главное, чтоб они разговаривали между собой на одном языке, т.е. использовали один и тот же протокол. А так вы можете хоть винду с ардуиной заставить взаимодействовать, что, собственно, многие и делают.
  • Как задать значение последней переменной?

    @res2001
    Третий вариант, по моему, утопия. Он создает больше проблем, чем решает их. Может зависеть от изменений в коде, и, возможно, от опций компилятора. Но, конечно, имеет право на существование. Из плюсов этого варианта - накладные расходы возникают только в момент срабатывания сигнала (если не считать за них вызов sigaction).
    В первых двух вариантах накладные расходы будут на каждой операции, не зависимо был сигнал или нет.
    Вариант с setjmp/longjmp, скорее всего, будет более медленным, чем проверка.

    Подумал тут, что если перед операцией инициализировать а нулем, в обработчике SIGFPE просто ничего не делаем, но он должен быть. Будет ли в таком случае значение а чем-то перезаписано при срабатывании сигнала? И если будет то чем?
    Тут еще важно, чтоб инициализацию а нулем компилятор не выкинул из кода в рамках оптимизаций. Не уверен, что поможет, но может для этого объявить а как volatile.
  • Есть ли смысл в уточнении типов данных чисел? И что это даст?

    @res2001
    Vitsliputsli, В этом примере это автоматический массив и лежит он на стеке. Был бы вектор или выделялся бы с помощью new - лежал бы в куче.
    Впрочем, не важно, где лежит массив. Конкретно в этом примере массив маленький и экономия мизерная. По быстродействию вообще не будет никакого плюса, т.к. и без оптимизации весь массив легко укладывается в кэш первого уровня.
    Был бы массив в миллион элементов, например, тогда экономия в 1 байт на одном элементе приводила бы к экономии в 1 Мб памяти, это уже существенно. Кроме того, на таких количествах элементов начинает играть заметную роль попадания в кэш, что на массиве с меньшим размером элемента будет происходить чаще.
  • Как открыть порты на статическом IP?

    @res2001
    У вас в голове конкретная каша.

    1. порт открывается той программой, которая слушает этот порт (работает с ним, отвечает на запросы, ...). На сколько я понял в вашем случае это сревер майнкрафта. Порт открывается при старте программы на том компе где она запущена.
    2. Роутер при настроенном пробросе портов, всего лишь передает трафик со своего внешнего порта на внутренний адрес вашего компа на его локальный порт. Поэтому и называется "проброс портов" - внешний порт роутера как бы становится локальным портом вашего компьютера.
    3. Кроме проброса портов, нужно настроить еще фаервол на роутере (и на локальном компе то же). Фаерволу вообще наплевать на пробросы и т.п., он работает по своим правилам, а по умолчанию он блокирует любой входящий трафик, который идет не в ответ на ваш запрос. Нужно разрешить входящий трафик на внешний порт роутера, который вы пробрасываете, только и всего.
    Настроив DMZ, вы скорее всего просто разрешили весь трафик в вашу локальную сеть. Теперь у вас единственный барьер - NAT. С точки зрения безопасности - это плохо. DMZ - это такая выделенная зона в локальной сети, к которой есть доступ снаружи. Предполагается, что основная локальная сеть находится в другом адресном пространстве и перед ней есть свой шлюз с фаерволом. Если у вас нет в реальности DMZ (а судя по всему у вас ее нет), стоит отключить DMZ на роутере и настроить фаервол.
  • Как в локальной сети с доменом настраивается DNS?

    @res2001
    если я с компьютеров в сети проверяю днс через https://www.dnsleaktest.com/ то там показывает ДНС провайдера указанные в настройках маршрутизатора

    И в чем конкретно проблема?

    Если вы хотите сами обслуживать свою зону для внешних ДНС запросов, то заведите свой внешний ДНС сервер (отдельный от внутренних ДНСов), сообщите вашему регистратору об этом, чтоб он перенаправлял запросы для вашего домена на ваш сервер. Можно арендовать ДНС хостинг, чтоб не разворачивать у себя.
    Тогда https://www.dnsleaktest.com/ будет возвращать ваш ДНС.

    Внутренние компы уже используют внешние ДНС сервера для внешних имен, указанные в ДНС на КД. Для внутреннего домена отвечает сам внутренний ДНС.

    Вы должны четко разграничивать внутренние и внешние ДНС запросы (а значит и отвечающие на них ДНС сервера). Как правило, ответы на одно и то же ваше доменное имя для внутреннего и внешнего запроса должны быть разными. И это нормально.
  • Зависимость скорости интернета от роутера и длины провода?

    @res2001
    zreitdl, Что внутри сети?
    Поставьте 2 компа по обе стороны р2 (т.е. 1 комп подключен к р1, второй - к р2) и посмотрите как у них обмен между собой. Тут можно использовать какой-нибудь iperf, например, оставив его на продолжительное время. Сеть во время теста лучше не занимать. Резких и больших скачков в скорости обмена быть не должно, скорость должна быть примерно одинакова на всем протяжении теста. Отклонения от средней скорости в 1-5% допустимы, так же возможны единичные кратковременные сильные провалы в скорости (обычно это связано с какими-то фоновыми процессами в ОС, которые вы не контролируете).
    Это точно вам даст понять виновны ли ваши роутеры (или линия их соединяющая) в проблемах.

    А так же сделайте то что написал Yan и Алексей Черемисин
  • Сисадмин как хобби?

    @res2001
    Сисадмин - это прежде всего про сеть. Локальную, связи локальных сетей между собой, выход в интернет, безопасность.
    В домашних условиях у вас нет таких задач, которые есть в офисе средней/крупной организации.
    И самому их придумать не зная о их существовании не просто.

    Из того, что реально делать дома:
    - научится диагностировать проблемы ПК и делать крупноузловой ремонт (т.е. менять не исправные запчасти на новые)
    - научится использовать и решать проблемы в винде и линуксе
    - разобраться как работает TCP/IP: адресация, маршрутизация, фильтрация, а так же ВПН, почта, веб сервер ...
  • Почему нет данных в хэш-таблице?

    @res2001
    Retr0Hacker, Спецификатор формата для вывода в printf типа unsigned long long в винде %llu
    Судя по тому, что значение key у вас то же выводится не верно, дело в этом.
    https://docs.microsoft.com/ru-ru/cpp/c-runtime-lib...

    Спецификаторы могут различаться в зависимости от компилятора. Поэтому в стандартной библиотеке есть заголовочный файл inttypes.h где заданы макросы с фиксированным именем описывающие формат для данного компилятора и платформы. Рекомендую использовать эти макросы, особенно для 64 битных целых, а так же типов с переменным (в зависимости от платформы) размером (size_t и его производных)
  • Какой выбрать VPN сервер для обхода блокировок?

    @res2001
    Интересная тема. Внутри вроде как тот же openvpn, но оригинально реализована маршрутизация запрещенных доменов.
  • Какая версия linux оптимальна для обучения?

    @res2001
    Vitsliputsli,
    Arch не стабильный? Это с чего вы так решили?

    Не стабильней, чем дебиан. Потому что чаще обновляется, а значит чаще завозят свежие баги.

    Устаревшее ПО, в некоторых случаях может быть проблемой, но далеко не всегда. Как правило оно там не так критично устаревшее, если брать актуальную версию дистрибутива, а не какую-нибудь позапрошлую.
    Если устаревший софт для вас проблема - вы выбираете дистрибутив с другой политикой обновления.

    Сборка софта из исходников. Когда я использовал FreeBSD все, что мне нужно было устанавливалось из портов достаточно быстро. Даже кастомное ядро собиралось за вполне вменяемое время, может быть час, давно это было. К слову, во FreeBSD из коробки есть возможность устанавливать софт и из бинарных пакетов так же как в лине.

    На счет дублирования и бэкапов - полностью согласен. Но ставить на сервер любой не стабильный дистрибутив - только если есть очень веские причины для этого.

    Я, собственно, ни за какой дистрибутив не топлю. Сам использую Убунту, меня устраивает. Если вдруг понадобится переустанавливать ОС, то скорее всего выберу другой дистрибутив, просто что бы посмотреть что-нибудь другое. Тот же arch, может быть.
    В ответе написал, что для целей автора, выбор дистрибутива не принципиален.