Задать вопрос
  • Воспроизведение звука из буфера без сохранения?

    @res2001
    Developer, ex-admin
    Если вы не программист - никак.

    Воспроизвести звук программно это несколько сложнее, чем записать данные в файл. Но принцип примерно такой же - отрыть устройство воспроизведения и писать в него данные, которые надо воспроизводить.
    Но из-за того что воспроизведение должно быть без задержек, само воспроизведение занимает время и API ОС и оборудование умеют работать только с некоторыми типами данных возникают особенности, усложняющие процесс.
    Проще всего использовать какую-либо библиотеку, которая большую часть работы возьмет на себя. Можно использовать PortAudio, например, но она на Си и достаточно низкоуровневая. Можно использовать API ОС но это совсем низкоуровнево и может быть достаточно сложно для начинающего.
    Ответ написан
    Комментировать
  • В чем именно проблема с ЖД?

    @res2001
    Developer, ex-admin
    SMART всегда возвращает физическое состояние диска. Фактически состояние SMART хранится на контроллере диска, так что ПО тут значения не имеет.
    У вас начались переназначения секторов. Это происходит, когда какие-то сектора на диске выходят из строя, в этом случае доступ к ним блокируется контроллером и вместо них назначаются другие (резервные) сектора. Резервных секторов ограниченное количество.
    Пока что у вас только 3 переназначения (VALUE), предельное количество переназначений 36 (THRESH). Когда количество переназначений достигнет этого числа, то переназначать уже будет нечего, тогда контроллер диска будет возвращать ошибки чтения в ОС.
    Еще какое-то время диск может пожить. Но не известно как быстро он исчерпает все переназначения.
    Так что лучше слить с него все что можно и заменить.

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

    @res2001
    Developer, ex-admin
    но как роутер перенаправляет запрос, без указания, на какой из локальных ip адресов происходит подключение?

    Без указания - никак.
    Но указание в той или иной форме есть.
    Если внутренняя сеть имеет серые адреса, то на роутере настроен NAT и там прописано правило перенаправления портов - это правило и есть указание локального адреса.
    Если внутри сети используются белые адреса (актуально для IPv6, ну и в IPv4 иногда такое то же можно встретить), то таблица маршрутизации содержит соответствующие правила.
    Ответ написан
    Комментировать
  • Как сконнектить два приложения без общего сервера?

    @res2001
    Developer, ex-admin
    Если речь идет о взаимодействии в рамках одной сети WiFi - то нет проблем. Используйте широковещательные пакеты для уведомления других устройств, что в сети есть устройство, готовое работать по вашему протоколу.
    Если это более общая задача, не привязанная к одной сети и WiFi, то даже если устройства будут знать адреса друг друга (не важно каким способом), могут возникнуть проблемы с доступом к устройству из-за оператора связи, т.к. в сотовых сетях обычно используется NAT оператора, который препятствует прямому доступу из интернета к устройству (NAT как правило включен в любом WiFi роутере и т.п.). В этом случае придется использовать какой-либо сервер в интернете со статическим адресом.
    Существуют варианты обхода NAT, но они так же требуют сервера для инициализации соединения, а затем уже устройства могут работать напрямую. Подобные техники используются, например, в VoIP. Гуглите по протоколу STUN.
    Ответ написан
    2 комментария
  • Как использовать юникод в консоли windows с wstring?

    @res2001
    Developer, ex-admin
    Аргументы командной строки не обязательно будут в 866 кодировке, могут быть и в 1251 - зависит от кодировки консоли, которую можно менять консольной командой chcp.
    Вообще не стоит использовать юникод в консоли, т.к. виндовая консоль не слишком дружит с юникодом.
    Например, если захотите обработать вывод вашей программы каким-нибудь фильтром в батнике, то при юникоде могут быть проблеммы.
    Хотя внутри программы вы можете использовать юникод, но в этом случае вы должны будете перекодировать весь ввод и вывод. Не уверен, можно ли настроить стандартную библиотеку, чтобы она сама занималась перекодировкой.
    А так в WinAPI есть целый набор консольных функций, в т.ч. можно получить текущую кодировку консоли для ввода и вывода, установить нужную кодировку, перекодировать текст.
    Ответ написан
  • Что за скобки в выражении std::true_type{}?

    @res2001
    Developer, ex-admin
    На сколько я понимаю, в вашем примере вполне можно заменить фигурные скобки на круглые и ничего не изменится.
    Но если бы в классе hello был бы конструктор, принимающий std::initializer_list, то в случае использования фигурных скобок вызвался бы именно этот конструктор, а не конструктор по умолчанию, даже если фигурные скобки пустые.
    Сделайте оба конструктора и проверьте, какой из них вызывается с фигурными скобками и с круглыми.
    Ответ написан
    Комментировать
  • Как написать модуль для Python 3 на C?

    @res2001
    Developer, ex-admin
    У Бизли в "Подробном справочнике" есть хорошая глава введения в этот процесс (это лучшее, что я видел в печатной литературе на русском). Но там, конечно, только для старта информация, все остальное берите из докуменатции.
    Ответ написан
    Комментировать
  • Как быстро вникнуть в чужой код?

    @res2001
    Developer, ex-admin
    Чаще практиковаться в чтении чужого кода. Ревью хорошо помогают в этом, но и читать абсолютно посторонний код полезно.
    Это навык, его можно наработать, как и все остальное. В любом случае на это потребуется время.
    Прежде чем вникать в код большого проекта, следует изучить документацию, лучше, если это будет документация для программиста. Но и пользовательская документация сгодится, за неимением лучшего. При чтении документации пытайтесь представить, как бы вы это реализовывали (без деталей, только самые важные моменты). После документации в голове сложится картина возможной реализации кода и станет проще понимать сам код.
    Ответ написан
    2 комментария
  • Как настроить VPN сервер на одном сервере с несколькими IP адресами?

    @res2001
    Developer, ex-admin
    чтобы потом можно было подключаться к этому VPN и выходить в интернет под разными IP.

    ВПН отвечает за канал связи между ВПН клиентом и ВПН сервером. Куда дальше идет трафик - это уже не его дело. Этим занимается стандартная процедура маршрутизации с помощью настроек таблицы маршрутизации, так же могут вклиниваться в процесс правила фаервола.

    Вы можете на ВПН сервере в фаерволе прописать правило для пакетов в интернет, полученных через ВПН, форвардить на определенный интерфейс. Это правило можете менять вручную скриптом или еще по каким-то условиям.
    Другой вариант - можно настроить 32 ВПНа (по 1 на каждый внешний адрес), каждый ВПН будет иметь свою подсеть, в фаерволе точно так же прописываются 32 правила для форвардинга пакетов полученных от соответствующего ВПНа на его интерфейс. В этом случае выбор адреса происходит на стороне клиента (подключаетесь к нужному ВПНу).
    Вместо 32 ВПНов, можно использовать 32 разных клиента в одном ВПНе с фиксированными адресами. Суть в том, что бы в правиле фаервола вы могли бы их отличать.

    Все это теоретические рассуждения. Конкретная реализация будет сильно зависеть от выбранной ОС для ВПН сервера, выбранного типа ВПН, чего-то еще.
    Ответ написан
    6 комментариев
  • No match for 'operator=' c++ ошибка?

    @res2001
    Developer, ex-admin
    Оператор присваивания должен возвращать ссылку на самого себя. У вас возвращается копия объекта.
    Ответ написан
    Комментировать
  • Как перегрузить оператор ++ для собственного класса String?

    @res2001
    Developer, ex-admin
    В префиксном инкременте вы должны изменить текущий объект и вернуть ссылку на себя.
    Вы же генерируете новый объект.
    Ответ написан
    Комментировать
  • Можно ли к ноуту на убунту 20.04 подключить внешнюю клавиатуру?

    @res2001
    Developer, ex-admin
    Можно. Ничего не надо настраивать.
    Ответ написан
    Комментировать
  • Как найти значения отдельных составных частей?

    @res2001
    Developer, ex-admin
    У вас маска для S не правильная (0x1F - 5 битов), судя по заданию должна быть 7 (3 бита). Но в целом это не должно влиять на результат, т.к. S последнее поле и при сдвиге свободные биты будут заполняться нулями.
    Приведите пример входное значение и что получаете на выходе.

    Так же было бы не плохо после ввода проверить введенное значение UnitStateWord на попадание в диапазон. Т.к. переменная может принимать гораздо более широкий диапазон значений.
    Ответ написан
  • В моём городе у всех одинаковые IP?

    @res2001
    Developer, ex-admin
    Операторы могут работать по двум схемам:
    1. Клиентам выдаются реальные "белые" адреса с которыми клиенты ходят в интернет. В этом случае адрес на роутере будет совпадать с адресом, который покажет, например, сервис 2ip.
    2. Клиентам выдаются "серые" адреса. В этом случае клиенты ходят в интернет через NAT провайдера, где их адрес подменяется на белый адрес NATа (в интернете серые адреса не могут использоваться). В этом случае адрес на роутере будет отличаться от адреса в 2ip. Диапазоны серых адресов можете погуглить.

    В обоих случаях адреса могут меняться.
    Во втором случае теоретически на одном адресе может сидеть очень много людей. На самом деле все сложнее и у провайдера несколько сервисов NAT со своими адресами, так что вряд ли будет сидеть весь город на одном адресе. В первом случае в данный конкретный момент только 1 клиент пользуется этим адресом.
    В обоих случаях при блокировке по IP другого человека, пользующегося услугами того же провайдера что и у вас, то вы будете заблокированы на этом сервисе, если этот IP адрес так или иначе достанется вам.
    Ответ написан
    Комментировать
  • Почему bat выводит в wmic неправильный месяц?

    @res2001
    Developer, ex-admin
    Потому что присвоилось значение из последней отфильтрованной findstrом записи: WeekInMonth=2
    Вы можете в вызове wmic отфильтровать столбцы, которые он будет возвращать:
    wmic path win32_utctime get Month /format:list

    На счет часов - тут все просто вы вызываете win32_utctime - она возвращает время в UTC, как это ни странно. Очевидно, в винде выставлен московский часовой пояс - +3 к UTC.
    Используйте win32_localtime вместо win32_utctime.
    Ответ написан
    1 комментарий
  • Что означает такая сигнатура функции?

    @res2001
    Developer, ex-admin
    Это скорее всего макросы, определенные где-то в заголовочных файлах. Поищите поиском по "#define _CMDINP" по исходникам библиотеки.

    Скорее всего _CMDIMP для компилятора микрософт преобразовывается в __declspec( dllimport ). Для gcc макрос не определен.
    _CMDAPI это видимо что-то вроде stdcall или cdecl, т.е. соглашения о вызовах.
    Ответ написан
    Комментировать
  • Семейство гигабитных Ethernet контроллеров PCI. Есть ли книги на эту тему?

    @res2001
    Developer, ex-admin
    Автосогласование реализовано на уровне PHY. Программно вполне оно управляемо. Во многих драйверах реализовано. Программно управляется PHY через MDIO. Возьмите для примера какой-либо чип Ethernet PHY, найдите даташит по нему, там будут описаны регистры и т.п. По этой информации можно уже примерно составить представление как это работает.
    Так же про автосогласование есть статья на википедии, можно начать оттуда, там есть несколько дополнительных ссылок.
    Вряд ли подобные вещи вы найдете в книгах. Возможно в англоязычной литературе что-то есть.

    Что такое SDM?
    Ответ написан
  • RAW-сокеты и API сетевых устройств в Linux. Какая есть литература?

    @res2001
    Developer, ex-admin
    По Линукс + сети книг достаточно.

    Хороших книг явно не достаточно, по моему.
    Про raw socket написано в "Unix. Разработка сетевых приложений" Стивенса. Книга старая, новых изданий нет. Но информация достаточно актуальна.

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

    @res2001
    Developer, ex-admin
    Для винды придется делать отдельную реализацию, т.к.
    1. В консоли винды несколько русских кодировок (cp1251 и cp866, причем по умолчанию cp866).
    2. В консоли винды кодировку можно менять командой chcp из самой консоли на лету.
    Так что нормальная реализация должна узнать текущую кодировку и перекодировать весь выводимый текст в нее. Аналогично и с консольным вводом.
    Менять кодировку из программы - плохой вариант, хотя и вполне работающий.
    Ответ написан
    Комментировать
  • Как организовать файлопомойку через ssh?

    @res2001
    Developer, ex-admin
    Если пользователи сидят в одной локальной сети то ssh избыточна, используйте стандартные средства: виндовые шары/samba.
    Если нужен доступ из инета, то можно использовать sshfs. Или WebDAV какой-нибудь.
    Ответ написан
    Комментировать