Задать вопрос
  • Как разобраться с выводом valgrind?

    @res2001
    shurshur, Согласен, валгринд вполне может на это среагировать.
  • Как разобраться с выводом valgrind?

    @res2001
    Так и есть, но это будет работать. free(0) - уже давно корректно работает практически везеде.
  • Очень долгий запуск bat как исправить?

    @res2001
    antares4045, Вы просто их плохо искали.
    Предлагаю дальше не продолжать. Тут все равно каждый останется при своих, т.к. что бы вас разубедить мне надо разобрать какую-то конкретную ситуацию. А для этого я должен воспроизвести ситуацию у себя и сам разобраться с ней. Мне, конечно, это делать лень.
    На вскидку про питон и телеграм ботов сказать ничего не могу, т.к. с питоном я сталкиваюсь мало и не регулярно, а телеграм ботов вообще никогда не писал.
  • Очень долгий запуск bat как исправить?

    @res2001
    antares4045, И вы, конечно, сразу свалили все на винду :-)
  • Очень долгий запуск bat как исправить?

    @res2001
    antares4045, Винда так же прекрасно справляется с unix-way цепочками. Нет никакой такой особенности, и нет проблем в винде с запуском процессов.
    В никсах полно разного толстого и "монолитного" софта, далеко не unix-way.
    Может быть когда-то unix-way и был какой-то фишкой никсов, но сейчас - это уже давно осталось в прошлом.
    И применительно к данному вопросу - unix-way тут вообще не при делах. Питон не использует никаких цепочек - это здоровое монолитное приложение.

    Тормозить может любая ОС по разнообразным причинам. Не стоит придумывать то чего нет.
    Запуск из-под админа вряд ли в этой ситуации чем-то поможет.
  • Как исправиться от ошибки "Это приложение заблокировано вашим системным администратором" и "Этому файлу не сопоставлена программа для выполнения..."?

    @res2001
    Станислав Иванов, Верно.
    Обычно программы можно не скидывать - они устанавливаются за ново, как обычно (скачиваете установщик и устанавливаете). Впрочем могут быть варианты, конечно.
  • Как исправиться от ошибки "Это приложение заблокировано вашим системным администратором" и "Этому файлу не сопоставлена программа для выполнения..."?

    @res2001
    Станислав Иванов, Вообще со зверьем можно бороться долго и так и не побороть до конца.
    Поэтому подумайте, может проще и быстрее слить нужную информацию с компа и переустановить винду с полным форматированием дисков.
    Если, что сливать инфу лучше подцепив диск с вашего компа на другой не зараженный комп - так ваша ОС (и вирусы в ней) будут не активны. Или загрузившись с загрузочной флэшки - в этом случае так же ваша ОС и вирусы не будут активны. Слитую информацию, конечно, стоит проверить на вирусы, до или после - это уже не так важно.
  • Как исправиться от ошибки "Это приложение заблокировано вашим системным администратором" и "Этому файлу не сопоставлена программа для выполнения..."?

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

    И вопрос - это домашний комп или рабочий/офисный?
  • Очень долгий запуск bat как исправить?

    @res2001
    antares4045, На счет
    плохо справляется с запуском процессов
    это, конечно, спорное утверждение. Как же винда до сих пор жива с такими-то проблемами?
    Третий пункт, то же какой-то странный. Если, что пишу этот текст с линукса.
    Но в целом с выводами согласен.
    AkaMaloy, Добавлю к сказанному:
    1. в батнике закоментируйте/удалите первую строку (echo off), тогда будет видно какая команда сейчас выполняется. Эта строка никакого важного функционала не выполняет - она запрещает предварительный вывод команды на экран перед исполнением команды.
    2. кроме загрузки ЦП посмотрите еще какие процессы в винде едят процессорное время или возможно сеть или диск, все это может давать тормоза. Встроенные менеджер задач и менеджер ресурсов вам в помощь.
    3. Какой размер питоновсекого venv? Может там дофига не нужного? Сравните с размером venv у друга. Может вам надо снести питон и поставить его с нуля. Не сильно разбираюсь в тонкостях питона (хотя некоторый опыт есть), поэтому просто предположение. Знаю, что venv иногда достигает значительных размеров, наверняка это может сказываться на скорости загрузки питона.
  • Bat файл работает через раз как исправить?

    @res2001
    AkaMaloy,
    я попробовал запустить с расширением

    Просто укажите расширение - это как минимум правильно для команды call.

    Тут дело такое:
    в вашем батнике тормозить могут только:
    1. activate.bat, который то ли вызывается то ли не вызывается и содержимое которого мне не известно
    2. питоновский скрипт

    Остальные команды выполняются без задержек (даже если происходит ошибка в процессе), кроме pause, про которуя я уже писал в ответе.

    Только не говорите мне, что "со скриптом всё отлично". Со скриптом то может и все отлично, но сетевые операции могут давать произвольные задержки. Для проверки попробуйте в питоноском скрипте засекать время выполнения сетевых операций.
  • Что в CMAKE я должен считать библиотекой?

    @res2001
    Rag’n’ Code Man, Чтоб не указывать путь к файлам заголовков библиотеки в исходниках, можно в cmake указать include_directories("path/to/lib")
    Это полезно, т.к. вы можете захотеть куда-нибудь перенести исходники библиотеки (или установить ее из пакетов), то не нужно будет менять все исходники, достаточно заменить путь в include_directories.
    Эта директива добавляет опцию -Ipath/to/lib в командную строку компилятора.
  • Что в CMAKE я должен считать библиотекой?

    @res2001
    Rag’n’ Code Man, Нет, в include по любому нужно указывать файл заголовка. Даже когда библиотека ставится из пакетов, то вместе с ней ставятся и ее заголовки.
  • Bat файл работает через раз как исправить?

    @res2001
    AkaMaloy,
    У activate нет расширения.

    Вообще, на сколько помню, в виртуальном окружении должен быть файл activate.bat или ps1: https://docs.python.org/3/library/venv.html
    Если файл без расширения, то возможно это шелл скрипт для линукса, который наверняка нельзя выполнить в винде. Посмотрите по содержимому.
    Вообще в винде командные файлы обязаны иметь расширение (bat или cmd), иначе их не возможно запустить. Тут вам не линукс.
  • Как переопределить операторы != и == в с++ для структуры?

    @res2001
    Юрий, Если уж все таки решите реализовывать операторы сравнения, то научитесь сравнивать Си строки - используйте strcmp() или в вашем случае wcscmp().
    Ваш текущий вариант сравнивает указатели на строки, это не одно и то же.
  • Как правильно использовать указатель?

    @res2001
    pshevnin, Нет. Так вы просто затрете локальный указатель out_edge и после выхода из функции потеряете его. Делайте как я писал - передаете двойной указатель и присваивание через разъименование.

    Аргументы функции являются локальными переменными по отношению к функции. Для передачи возвращаемого значения через указатель, вы используете локальный указатель, который указывает куда-то в область памяти за пределами функции.
  • SFML Как обнаружить наличие объекта класса?

    @res2001
    Что в чем находится? Переформулируйте вопрос.
  • Как с помощью рекурсии найти минимальный элемент массива?

    @res2001
    В вашем коде нет реализации рекурсивной функции :-) Это задание?

    Зачем рекурсия в этой задаче?
    Как правило, рекурсия хороша только для обучения. На рекурсии бывает легче объяснить реализацию некоторых алгоритмов.
    В реальности рекурсия проигрывает итерационному методу (циклу) как по скорости, так и по затрачиваемым ресурсам.
    В вашем случае - если массив будет слишком большим, то будет переполнение стека из-за рекурсии.
  • EventLoop, потоки и блокировки, как правильно блокировать?

    @res2001
    syxme,
    Я что-то сделал и всё заработало

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

    Ошибся в ответе немного: get возвращает указатель, а не ссылку, но это ни как не влияет на смысл ответа.

    Кстати, в MessageQueue метод empty не имеет смысла, т.к.:
    1. там у вас ошибка - вы не захватываете мьютекс, но другой поток может модифицировать очередь пока выполняется pool.empy(), в итоге не понятно что вернется
    2. Т.к. очередь претендует на потокобезопасность, то подразумевается что с ней работает несколько потоков. Когда один из потоков получил результат empty() (даже в том случае когда empty будет реализована правильно), он может быть вытеснен другим потоком, который модифицирует очередь (добавит элемент или удалит последний элемент) и результат empty() будет не правильным в предыдущем потоке.

    Поэтому empty надо убрать из публичного интерфейса. Вместо этого в методах модифицирующих очередь проверять состояние, когда мьютекс уже будет захвачен.
  • Почему разрывает соединение, при смене типа?

    @res2001
    Илья, Конструктор по умолчанию вообще не имеет смысла, я бы его запретил.
    В конструктор где приниматеся fd может быть передан блокирующий сокет, тогда как в другом конструкторе ты создаешь не блокирующий сокет. А в остальных членах класса поведение типичное для блокирующего сокета.

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