Задать вопрос
  • Как читать из stdout другого процесса в linux api?

    @res2001
    Developer, ex-admin
    В линуксе точно так же есть именованные и не именованные каналы, API, естественно, отличается, но суть не меняется.
    Ответ написан
  • Зачем при использовании библиотеки stb_image указывают #define STB_IMAGE_IMPLEMENTATION?

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

    @res2001
    Developer, ex-admin
    В линукс обычно исполняемые файлы лежат в /bin, /sbin, /usr/bin, /usr/sbin.
    Иногда в /usr/local/bin, /usr/local/sbin.
    Еще некоторый софт ставит себя в /opt и там в собственном подкаталоге создает похожую иерархию каталогов.
    Найти программу по имени можно с помощью команды whereis <имя программы>
    Или с помощью find / -name <имя программы>
    find будет работать дольше т.к. будет сканировать все что сможет. whereis сканирует только каталоги указанные в PATH, поэтому работает гораздо быстрей.
    Ответ написан
    Комментировать
  • Как прописать роут чтобы было видно клиентов другого роутера?

    @res2001
    Developer, ex-admin
    Когда вы объедините 2 роутера кабелем, вам надо будет выбрать вариант настройки роутеров:
    1. роутер 1 будет членом LAN сети роутера 2 (т.е. у первого будет на интерфейсе LAN адрес из сети второго ). Роутер 1 - ведомый, роутер 2 - ведущий.
    2. роутер 2 будет членом LAN сети роутера 1. Роутер 2 - ведомый, роутер 1 - ведущий.
    3. организуете отдельную подсеть для роутеров, в которой будет только 2 хоста. Оба роутера равноправные члены. Этот вариант стоит использовать, если бы у вас было не 2 роутера, а больше с перспективой увеличения их количества (например, объединение филиальной сети предприятия).

    Все три пункта подразумевают выделения хотя бы на одном (ведомом) роутере (в п.3 на обоих) одного интерфейса (того которым объединяете роутеры) в собственный VLAN (на подобных устройствах это может называться по разному в зависимости от фантазии производителя).
    При этом, возможно, понадобится на ведомом роутере добавить правило фаервола, разрешающее маршрутизацию между сетями.

    Маршрутизация по вариантам:
    1 и 2. На ведущем роутере надо прописать статический маршрут до сети ведомого роутера. На ведомом не надо ничего прописывать, т.к. он и так является членом сети ведущего и маршрут у него появится автоматически.
    3. На обоих роутерах нужно прописать маршруты до сети соседа.

    Как видите, во всех вариантах от роутера требуется поддержка определенных возможностей: для ведущего нужна возможность добавлять статические маршруты, для ведомого - поддержка VLAN (для варианта 3 - обе возможности для обоих роутеров).

    Обычно в домашних условиях, когда объединяют 2 роутера, то просто используют WAN интерфейс ведомого для соединения с ведущим. Но в этом случае доступ к интернету есть только у ведущего и сеть за ведомым в инет ходит через ведущего. У вас же на обоих роутерах свой интернет и этот вариант вам не подходит.
    Ответ написан
    Комментировать
  • Как произвести корректное вычисление среднего значения в сводной таблице?

    @res2001
    Developer, ex-admin
    На сколько я понимаю, нужно вывести среднюю за длительный период, по нескольким средним с более короткими периодами. Короткие периоды могут быть не равными.
    Допустим a1, a2, a3 - средние за 1, 2 и 3 период; n1, n2, n3 - количество дней в каждом из периодов.
    Тогда общую среднюю можно найти так: A = (a1*n1 + a2*n2 + a3*n3)/(n1+n2+n3)
    Ответ написан
    Комментировать
  • Как быстро усвоить большой объем информации?

    @res2001
    Developer, ex-admin
    Для начала всю массу всей новой информации надо распределить по степени важности.
    Самое важное - это то, что вам нужно прямо сейчас для исполнения своих служебных обязанностей. Вот на это и налегайте. Остальное пока по боку. Дальше у вас появятся еще какие-то задачи, так и будете изучать, постепенно.
    Если что-то необходимо для выполнения обязанностей, но это что-то не основное, а просто каким-то образом используется в процессе, то изучите только минимально необходимое для работы.
    Как правило, не так страшен черт, как он кажется на первый взгляд.
    Ответ написан
    Комментировать
  • Какой RDP клиент для Windows со списком и папками/категориями вы знаете?

    @res2001
    Developer, ex-admin
    Делает отдельный каталог на раб.столе с набором .rdp файлов для всех ваших серверов. Файлы называйте так что бы было удобно находить нужный, можно делать вложенную иерархию. И все доступно из коробки :-)
    Ответ написан
    Комментировать
  • Почему пропадает интернет при подключениие к OpenVPN?

    @res2001
    Developer, ex-admin
    Типичная ошибка. ВПН сервер прописал себя маршрутом по умолчанию для клиента. И теперь все пакеты в интернет идут на ВПН сервер.
    В этом виновата опция
    push "redirect-gateway def1 bypass-dhcp"
    Она делает не то, что вы думаете.
    Просто закоментируйте эту опцию и перезагрузите сервер.
    Ответ написан
    54 комментария
  • Как указать путь к своей папке?

    @res2001
    Developer, ex-admin
    Смотрите описаниние модификаторов в for /? (модификаторы это буквы, которые идут после %~). Там они описаны для переменной цикла, но точно так же модификаторы работают и с параметрами батника, т.е. с переменными вида %0, %1, %2, ...
    Имя запускаемого батника хранится в переменной %0, соответственно применив модификаторы можно из этой переменной получить только путь к батнику: %~dp0
    Ответ написан
    1 комментарий
  • Почему в C++ всё именно так?

    @res2001
    Developer, ex-admin
    Показался интересным 7 вопрос.
    Дело в том, что вы можете создать экземпляр пустого объекта и можете взять его адрес.
    Но если размер объекта будет 0, то адрес будет взять не возможно (объект не занимает места в памяти, соответственно нет и адреса), что противоречит правилам языка.
    Поэтому пустые объекты на самом деле не пустые и занимают в памяти 1 байт.
    Ответ написан
    1 комментарий
  • Какие существуют средства для работы с документами Word.docs (.doc) через c++?

    @res2001
    Developer, ex-admin
    Например можно использовать для этого сам Word, если вас это устраивает. Все продукты MS Office являются COM/ActiveX объектами. Это можно использовать в своей программе на каком угодно языке, умеющем в COM/ActiveX. С++ это умеет. Из коробки это умеют еще и JacaScript и VBScript, так что может вам и плюсы не нужны.
    Ответ написан
    4 комментария
  • Как перенести папку Users на другой диск?

    @res2001
    Developer, ex-admin
    Вот тут описано: https://www.top-password.com/blog/move-the-entire-...
    Я примерно так же делаю еще со времен WindowsXP.
    Но я не переношу профиль Default и Public, как описано в статье, а пользовательский профиль создает винда сама в новом месте (данные во вновь созданный профиль, потом копирую руками). В профилях полно ссылок и при простом копировании всего каталога ссылки останутся указывать на старые места (а этого нам не нужно).

    Для того что бы не было проблем со ссылками действуйте по моему методу.
    На новом томе создаете пустую папку Users (имя папки не принципиально) с такими же правами и наследованием как у папки c:\Users. Далее указываете путь в параметре реестра ProfilesDirectory (смотри ссылку), Public и Default оставляете без изменений.
    Что бы винда создала новый профиль надо удалить ветку реестра старого профиля пользователя. Ветки реестра профиля находятся в разделе реестра ProfileLists (смотри ссылку) и имеют вид S-1-5-2-1-..., находите ветку интересующего вас пользователя и удаляете ее целиком (если страшно, можно ветку переименовать - добавьте к ней префикс). После перезагрузки винда создаст новый профиль в новом месте. Переносите данные из старого профиля в новый. Удаляете старый профиль. Все!
    Все профили новых пользователей будут создаваться на новом месте. При этом профили Public и Default будут находится на прежнем месте, так что каталог c:\Users не удаляйте. Т.к. профиль создан самой виндой с нуля, то все ссылки внутри профиля будут корректные.
    Ответ написан
    2 комментария
  • Какой IP адрес будет у маршрутизатора mikrotik, если к нему подключить 4g модем?

    @res2001
    Developer, ex-admin
    Какой IP адрес будет у маршрутизатора mikrotik, если к нему подключить 4g модем?

    Тот который выделит оператор. Но попадать в интернет вы скорее всего будете с другого адреса - с NATа оператора.
    Возможно ли присвоить ему (маршрутизатору) внешний IP от 4g модема и если да, то как?

    Адрес модема и есть адрес маршрутизатора. Модем - это как сетевой адаптер в компе.
    Ответ написан
    Комментировать
  • Сплиттер или коммутатор?

    @res2001
    Developer, ex-admin
    Конечно коммутатор. Можно взять самый простой тупой хаб (не роутер) на 4 порта (вряд ли найдете меньше).
    Ответ написан
    4 комментария
  • Как получить данные из сайта в C++?

    @res2001
    Developer, ex-admin
    Так же, как и на любом другом языке программирования - отправить HTTP запрос на сайт, получить и распарсить ответ. Для этого есть много библиотек, с помощью которых это можно сделать достаточно легко.
    Так же можно сделать и без сторонних библиотек, но это будет уже гораздо сложнее и придется во всем разбираться самому.
    В самом языке С++ встроенных средств для этого, конечно, нет.
    Ответ написан
    Комментировать
  • Каковы бест практикс структуры каталогов и файлов программы в Windows?

    @res2001
    Developer, ex-admin
    Например тут: https://en.wikipedia.org/wiki/Directory_structure
    Встречал похожий более подробный документ где-то на сайте микрософта, но сейчас не нашел.
    Если кратко:
    1.программу ставить в "Program Files" в соответствии с платформой. Внутренняя структура исполняемых файлов и библиотек - на ваше усмотрение. Если вы используете кучу динамических библиотек, то есть смысл разнести их по подкаталогам. Если у вам только небольшая кучка - могут лежать в одном каталоге. Это на самом деле не важно и никому не интересно.
    2.Общие настройки программы, которые распространяются на всех пользователей: в реестр в HKLM и/или в ProgramData.
    3.Пользовательские настройки программы: в реестр в HKCU и/или в AppData.
    4.Пользовательские временные файлы: в %TEMP%
    5.Файлы проектов или сохранения: в %USERPROFILE%\Documents
    Ответ написан
    2 комментария
  • Почему у меня постоянно кончается место на дисках C и D?

    @res2001
    Developer, ex-admin
    без возможности модернизации с закрытой намертво нижней крышкой

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

    По сути вопроса:
    Рекомендую пользовательский профиль не оставлять на системном диске. Многие программы пишут свои временные файлы в каталоги профиля, они могут занимать очень много места. По поводу методов переноса профиля писал тут несколько раз когда-то.
    Устанавливаемый софт ставить на другой диск особого смысла нет - обычно софт занимает не так много места, чем файлы проектов и временные файлы. Если софт влазит на системный диск, то там ему и место.
    120 Гб для системного раздела Вин10 - это мало. Пока не замените системный диск попробуйте перенести файл подкачки с системного диска на другой, где больше емкость. На системном вообще его запретить. На системном диске всегда должно быть свободное место, иначе винда может перестать загружаться.
    Пользуйтесь виндовым мастером очистки, он стал уже достаточно продвинутым.
    Ответ написан
    Комментировать
  • Ограничение доступа в интернет клиентам OpenVPN?

    @res2001
    Developer, ex-admin
    добавляя опции

    Это странно, мягко говоря. Похоже вы добились прямо противоположного. Опция
    push redirect-gateway def1 bypass-dhcp
    Делает ВПН сервер шлюзом по умолчанию на клиентах. Так что интернет у клиента будет идти через ВПН.
    Вторая опция просто добавляет DNS сервер клиенту.
    Что бы клиент использовал свой интернет - удалите обе опции из конфига сервера.

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

    Включение NAT на ВПН интерфейсе то же не обязательно. Использовать его или нет - зависит от текущих настроек сети за клиентом и сервером и от того для чего вы используете ВПН.
    Ответ написан
  • В каких случаях лучше использовать wchar_t, char16_t, char32_t вместо char в C++?

    @res2001
    Developer, ex-admin
    Под виндой лучше всегда использовать wchar_t, т.к. ядро винды внутри себя использует wchar_t для строк. Все функции WinAPI, принимающие строки как char* - просто конвертируют их в wchar_t и вызывают соответствующую функцию для широких символов. Так что в целях некоторой оптимизации лучше сразу использовать wchar_t.
    В линуксе сейчас уже повсеместно UTF8. Разве что вам придется писать для старых ядер/дистрибутивов.
    Другие типы - тогда когда будете работать с данными в соответствующих кодировках.
    Ответ написан
    Комментировать
  • Как реализован консольный ввод/вывод в C/C++?

    @res2001
    Developer, ex-admin
    Непосредственно вводом/выводом занимается ОС. Стандартная библиотека С/С++ использует API ОС для ввода/вывода.
    Ответ написан
    Комментировать