uz
Feedback
С/С++ Portal | Программирование

С/С++ Portal | Программирование

Kanalga Telegram’da o‘tish

Присоединяйтесь к нашему каналу и погрузитесь в мир для C/C++-разработчика Сотрудничество, реклама: @devmangx Менеджер: @Spiral_Yuri РКН: https://clck.ru/3Foc4d

Ko'proq ko'rsatish

📈 Telegram kanali С/С++ Portal | Программирование analitikasi

С/С++ Portal | Программирование (@cpportal) Rus til segmentidagi kanali faol ishtirokchi. Hozirda hamjamiyat 15 300 obunachidan iborat bo'lib, Texnologiyalar & Aralashmalar toifasida 8 539-o'rinni va Rossiya mintaqasida 43 756-o'rinni egallagan.

📊 Auditoriya ko‘rsatkichlari va dinamika

невідомо sanasidan buyon loyiha tez o‘sib, 15 300 obunachiga ega bo‘ldi.

17 Iyun, 2026 dagi oxirgi ma’lumotlarga ko‘ra kanal barqaror faollikka ega. Oxirgi 30 kunda obunachilar soni -219 ga, so‘nggi 24 soatda esa -4 ga o‘zgardi va umumiy qamrov yuqori darajada qolmoqda.

  • Tasdiqlash holati: Tasdiqlanmagan
  • Jalb etish (ER): Auditoriya o‘rtacha 13.04% darajada jalb etiladi. Nashrdan keyingi dastlabki 24 soatda kontent odatda umumiy obunachilar sonining 8.31% ini tashkil etuvchi reaksiyalarni to‘playdi.
  • Post qamrovi: Har bir post o‘rtacha 1 996 marta ko‘riladi; birinchi sutkada odatda 1 272 ta ko‘rish yig‘iladi.
  • Reaksiyalar va o‘zaro ta’sir: Auditoriya faol: har bir postga o‘rtacha 15 ta reaksiya keladi.
  • Tematik yo‘nalishlar: Kontent linux, ядро, c++, процессор, указатель kabi asosiy mavzularga jamlangan.

📝 Tavsif va kontent siyosati

Muallif resursni shaxsiy fikrni ifoda etish maydoni sifatida ta’riflaydi:
Присоединяйтесь к нашему каналу и погрузитесь в мир для C/C++-разработчика Сотрудничество, реклама: @devmangx Менеджер: @Spiral_Yuri РКН: https://clck.ru/3Foc4d

Yuqori yangilanish chastotasi (oxirgi ma’lumot 18 Iyun, 2026 da olingan) sababli kanal doimo dolzarb va katta qamrovli bo‘lib qoladi. Analitika auditoriya kontent bilan faol hamkorlik qilishini, uni Texnologiyalar & Aralashmalar toifasidagi muhim ta’sir nuqtasiga aylantirishini ko‘rsatadi.

15 300
Obunachilar
-424 soatlar
-557 kunlar
-21930 kunlar
Obunachilarni jalb qilish
Iyun '26
Iyun '26
+10
2 kanalda
May '26
+20
0 kanalda
Get PRO
Aprel '26
+6
0 kanalda
Get PRO
Mart '26
+10
13 kanalda
Get PRO
Fevral '26
+6
3 kanalda
Get PRO
Yanvar '26
+15
4 kanalda
Get PRO
Dekabr '25
+224
8 kanalda
Get PRO
Noyabr '25
+1 254
319 kanalda
Get PRO
Oktabr '25
+3
0 kanalda
Get PRO
Sentabr '25
+12
0 kanalda
Get PRO
Avgust '25
+17
1 kanalda
Get PRO
Iyul '25
+1 894
276 kanalda
Get PRO
Iyun '25
+471
1 kanalda
Get PRO
May '25
+374
2 kanalda
Get PRO
Aprel '25
+774
0 kanalda
Get PRO
Mart '25
+1 115
0 kanalda
Get PRO
Fevral '25
+880
1 kanalda
Get PRO
Yanvar '25
+1 567
2 kanalda
Get PRO
Dekabr '24
+2 704
398 kanalda
Get PRO
Noyabr '24
+939
170 kanalda
Get PRO
Oktabr '24
+2 377
287 kanalda
Get PRO
Sentabr '24
+1 692
283 kanalda
Get PRO
Avgust '24
+4 232
234 kanalda
Sana
Obunachilarni jalb qilish
Esdaliklar
Kanallar
18 Iyun0
17 Iyun0
16 Iyun0
15 Iyun0
14 Iyun0
13 Iyun0
12 Iyun0
11 Iyun+5
10 Iyun0
09 Iyun0
08 Iyun0
07 Iyun0
06 Iyun0
05 Iyun+1
04 Iyun+3
03 Iyun+1
02 Iyun0
01 Iyun0
Kanal postlari
Дерево Фенвика считает префиксные суммы за O(log n) с помощью одного битового трюка. n & -n изолирует младший установленный б
Дерево Фенвика считает префиксные суммы за O(log n) с помощью одного битового трюка. n & -n изолирует младший установленный бит. В дополнительном коде -n инвертирует биты и прибавляет 1. Этой одной операции хватает, чтобы перемещаться по всему дереву. Обновления идут вверх, запросы идут вниз, и оба действия опираются на одну и ту же битовую манипуляцию. 👉 @Cpportal

2
Stanford CS107 — Организация компьютеров и системное программирование Материалы курса и конспекты лекций просто отличные. Раз
Stanford CS107 — Организация компьютеров и системное программирование Материалы курса и конспекты лекций просто отличные. Разбираются такие темы, как: устройство компьютера на низком уровне память и указатели стек и куча машинный код и ассемблер компиляция и линковка процессы и системные вызовы производительность программ https://web.stanford.edu/class/archive/cs/cs107/cs107.1266/ 👉 @Cpportal
1 072
3
1. Введение в параллельные алгоритмы https://www.cs.cmu.edu/~guyb/paralg/paralg/parallel.pdf 2. Один из лучших бесплатных кур+1
1. Введение в параллельные алгоритмы https://www.cs.cmu.edu/~guyb/paralg/paralg/parallel.pdf 2. Один из лучших бесплатных курсов по низкоуровневой оптимизации производительности — курс Aalto University по программированию параллельных вычислений. Внутри разбираются: SIMD-векторизация конвейеризация инструкций (instruction pipelining) оптимизация работы с кэшем параллельные алгоритмы многопоточность и другие техники повышения производительности Если тебе интересно выжимать максимум из процессора и считать такты CPU, этот курс точно стоит пройти. https://ppc.cs.aalto.fi/ 👉 @Cpportal
1 293
4
Если вы ещё не знакомы с этим, обязательно загляните в техническую и архитектурную документацию SQLite — там разобрано огромн
Если вы ещё не знакомы с этим, обязательно загляните в техническую и архитектурную документацию SQLite — там разобрано огромное количество впечатляющих инженерных деталей. Достаточно просто посмотреть на список тем, которые она охватывает. [https://sqlite.org/docs.html] 👉 @Cpportal
1 377
5
В C++ появился новый оператор: ^^ В комитете его называют cat-ears operator («оператор кошачьих ушек»). Именно через него в я+1
В C++ появился новый оператор: ^^ В комитете его называют cat-ears operator («оператор кошачьих ушек»). Именно через него в язык приходит рефлексия — одно из крупнейших изменений в C++ со времён появления шаблонов. C++26 приносит в язык compile-time reflection (P2996). Оператор ^^ позволяет превратить любую сущность — тип, функцию или элемент перечисления — в compile-time представление (mirror), которое можно анализировать и преобразовывать во время компиляции. enum → строка? Одна функция. JSON-сериализация? Без макросов, генераторов кода и километров шаблонов. Автор предложения — Barry Revzin и ещё шесть соавторов. https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2025/p2996r13.html https://wg21.org/ 👉 @Cpportal
1 646
6
Предсказание ветвлений, переименование регистров, спекулятивное выполнение, буферы записи, трансляция μops. Огромная часть сл
Предсказание ветвлений, переименование регистров, спекулятивное выполнение, буферы записи, трансляция μops. Огромная часть сложности современных процессоров нужна для поддержки простой иллюзии: будто инструкции выполняются строго по порядку, по одной за раз, именно так, как это описывает ISA. Ты пишешь код под x86. Процессор переводит его во что-то другое и дальше работает уже с этим. 👉 @Cpportal
1 525
7
Ещё одно распространённое заблуждение о C — многие думают, что строки обязательно нужно писать в кавычках. https://godbolt.or
Ещё одно распространённое заблуждение о C — многие думают, что строки обязательно нужно писать в кавычках. https://godbolt.org/z/qcWc4j3q3 #include <stdio.h> #define puts(x...) puts(%:x) int main() { puts(Hello, world!); } 👉 @Cpportal
1 606
8
std::expected из C++23 может оказаться одним из самых практичных нововведений в языке за последние годы. Он даёт структуриров
std::expected из C++23 может оказаться одним из самых практичных нововведений в языке за последние годы. Он даёт структурированный способ обработки ошибок без использования исключений и выходных параметров. Вызывающий код не может случайно проигнорировать возможность ошибки, при этом здесь нет управления потоком выполнения через исключения. 👉 @Cpportal
1 711
9
Стандартный макрос min(a, b) может вернуть неверный результат, если один аргумент знаковый (signed), а другой беззнаковый (un
Стандартный макрос min(a, b) может вернуть неверный результат, если один аргумент знаковый (signed), а другой беззнаковый (unsigned). Во время сравнения оба значения приводятся к unsigned, поэтому отрицательные числа превращаются в огромные положительные значения. В ядре Linux макрос min() защищает от такой ошибки: он выполняет проверку типов и превращает подобные случаи в ошибку компиляции. 👉 @Cpportal
1 810
10
В C есть оператор «идёт к», которого так и не добавили в стандарт. Выглядит как оператор, но на самом деле им не является. Ко
В C есть оператор «идёт к», которого так и не добавили в стандарт. Выглядит как оператор, но на самом деле им не является. Компилятор интерпретирует его как: (x--) > 0 Сначала выполняется постдекремент, затем результат сравнивается с нулём. 👉 @Cpportal
1 858
11
Один геймер превратил GTA Online с 6-минутной загрузкой в игру с секундной загрузкой за один уикенд. Rockstar терпел эту проб
Один геймер превратил GTA Online с 6-минутной загрузкой в игру с секундной загрузкой за один уикенд. Rockstar терпел эту проблему почти 7 лет. t0st разобрал игру на уровне реверса и выявил два узких места: Один парсер каждый шаг вызывал strlen() на оставшихся 10 МБ JSON, повторяя лишнюю работу. Другая функция делала почти 2 миллиарда проверок дубликатов на 63 000 уникальных предметов, хотя в этом не было необходимости. // bug 1 - ChakraCore sscanf implementation // github.com/chakra-core/ChakraCore/blob/master/pal/src/safecrt/sscanf.c int sscanf(const char *string, const char *format, ...) { size_t count = strlen(string); // scans the whole string before parsing starts return input_s_l(..., string, count, ...); } // bug 2 - from t0st's decompilation notes char __fastcall netcat_insert_dedupe( uint64_t catalog, uint64_t *key, uint64_t *item ) { uint64_t not_a_hashmap = catalog + 88; if (!(*(uint8_t(__fastcall**)(uint64_t*))(item + 48))(item)) return 0; array_find_and_insert(not_a_hashmap, key, &item); // linear search on every insert } То же самое игра, те же данные — всего несколько строк кода решают разницу между минутами и секундами. t0st решил проблему максимально просто: Для парсера JSON он не переписывал весь движок, а просто «повесил» хук на strlen() и кешировал результат, чтобы не пересчитывать его каждый раз. Для проверки дубликатов он заметил, что элементы уже уникальные, и пропустил проверку полностью. // fix 1 - cache strlen results for very large strings size_t strlen_cacher(char *str) { static char *start, *end; if (start && str >= start && str <= end) return end - str; size_t len = __builtin_strlen(str); if (len > 20000) { start = str; end = str + len; } return len; } // fix 2 - skip the duplicate lookup entirely char __fastcall netcat_insert_dedupe_hooked( uint64_t catalog, uint64_t *key, uint64_t *item ) { uint64_t not_a_hashmap = catalog + 88; if (!(*(uint8_t(__fastcall**)(uint64_t*))(item + 48))(item)) return 0; netcat_insert_direct(not_a_hashmap, key, &item); // bypass the scan } В итоге загрузка GTA Online упала с ~6 минут до менее чем 2 минут. t0st позже сказал, что исправление выглядело как задача, которую один разработчик мог бы сделать меньше чем за день. Rockstar выплатили ему $10,000 через программу bug bounty. 👉 @Cpportal
1 776
12
В исходниках Nginx HTTP-парсер реализован как ручная конечная машина с примерно 25 состояниями. Каждый байт запроса обрабатыв
В исходниках Nginx HTTP-парсер реализован как ручная конечная машина с примерно 25 состояниями. Каждый байт запроса обрабатывается по одному, с одной трансформацией состояния за символ. Весь HTTP/1.1 request line проходит через этот парсер в один проход, без промежуточных буферизаций или повторного анализа. Это классический подход для высокопроизводительных C-серверов: минимальные аллокации, предсказуемое поведение и высокая скорость. 👉 @Cpportal
2 031
13
PID'ы переиспользуются. pidfd — нет. Если вызвать kill() для PID, который ты сохранил 20 минут назад, есть шанс отправить сиг
PID'ы переиспользуются. pidfd — нет. Если вызвать kill() для PID, который ты сохранил 20 минут назад, есть шанс отправить сигнал уже совершенно другому процессу. pidfd — это стабильный дескриптор конкретного процесса. Он остаётся привязанным именно к нему, даже если его PID позже будет переиспользован системой. Одна из тех фич Linux, после знакомства с которыми возникает только один вопрос: почему я не знал об этом раньше? 👉 @Cpportal
1 908
14
Этот обычный на вид C-код содержит серьёзную уязвимость: она может повредить память и привести к эксплуатации. Такой паттерн
Этот обычный на вид C-код содержит серьёзную уязвимость: она может повредить память и привести к эксплуатации. Такой паттерн находили в OpenSSH в 2002 году, libtiff и куче других проектов. Сможете сказать, в чём проблема, если код запускается на 32-битной системе? Именно этот кусок кода стал причиной уязвимости OpenSSH (CVE-2002-0640). nresp = packet_get_int(); if (nresp > 0) { response = xmalloc(nresp * sizeof(char *)); for (i = 0; i < nresp; i++) response[i] = packet_get_string(NULL); } Через неё атакующие могли ломать кучу, выполнять свой код на сервере и получать над ним контроль. 👉 @Cpportal
2 198
15
Бинарный поиск, который вы заучили, скорее всего реализован с ошибкой. Джон Бентли опубликовал реализацию бинарного поиска в
Бинарный поиск, который вы заучили, скорее всего реализован с ошибкой. Джон Бентли опубликовал реализацию бинарного поиска в Programming Pearls после того, как доказал её корректность и протестировал. Ошибка оставалась незамеченной почти 20 лет. Позже Джошуа Блох обнаружил ту же самую ошибку в реализации бинарного поиска, которую написал для JDK. Исследование 1988 года показало, что корректная реализация бинарного поиска была только в 5 из 20 учебников. Ошибка проявляется только на массивах размером 2³⁰ элементов и больше. Проблема возникает при вычислении середины диапазона. mid = (low + high) / 2 На очень больших массивах такое выражение может вызвать переполнение. Исправление простое: mid = low + (high - low) / 2 В C переполнение приводит к выходу за границы массива с непредсказуемыми последствиями. В Java это заканчивается исключением ArrayIndexOutOfBoundsException. Та же ошибка затронула Merge Sort и множество других алгоритмов класса «разделяй и властвуй». Эта ошибка была и в ядре Linux — в kallsyms.c. Вегард Носсум исправил её, а Линус Торвальдс одобрил патч. Исправление сводилось к замене: mid = (low + high) / 2; на: mid = low + (high - low) / 2; Джошуа Блох завершил свою статью фразой, которая остаётся актуальной и сегодня: «Трудно правильно написать даже самый маленький фрагмент кода, а весь наш мир работает на больших и сложных программных системах». 👉 @Cpportal
2 281
16
Ищем Senior Rendering Engineer (C++) в команду 3D-карты 2ГИС Мы делаем карту более реалистичной: работаем над рельефом, дорог
Ищем Senior Rendering Engineer (C++) в команду 3D-карты 2ГИС Мы делаем карту более реалистичной: работаем над рельефом, дорогами, развязками, тоннелями, анимациями и графическими эффектами. Внутри — собственный 3D-движок на C+20 (500k строк кода), современные графические API (Vulkan, Metal, OpenGL), шейдеры, сложные алгоритмы и задачи производительности. Будет интересно, если вам нравится компьютерная графика, низкоуровневая разработка и создание продукта, который ежедневно используют миллионы людей. Удалённо из РФ или из офисов 2ГИС. ДМС, обучение, конференции и возможность напрямую влиять на развитие 3D-карты. Подробнее Другие инженерные инсайты от 2ГИС → в Telegram-канале RnD
1 509
17
Вышел бесплатный гайд по Vim. Внутри: → история Vim → настройка и кастомизация → плагины → основные команды для повседневной работы https://freecodecamp.org/news/mastering-vim-your-guide-to-efficient-text-editing/ 👉 @Cpportal
1 931
18
Одна из самых недооценённых анонсированных на WWDC фич — Container Machines. Она позволяет запускать на Mac лёгкое и постоянное Linux-окружение, в котором домашний каталог пользователя и репозитории автоматически монтируются внутрь контейнера. По сути, разработчики получают Linux-среду, тесно интегрированную с macOS, без необходимости вручную настраивать виртуальные машины или сложную инфраструктуру контейнеров.🍎🐧 https://github.com/apple/container/blob/main/docs/container-machine.md 👉 @Cpportal
2 162
19
Забавный факт: решето Эратосфена позволяет найти все простые числа примерно до 8 миллионов, используя всего около 1 МБ памяти
Забавный факт: решето Эратосфена позволяет найти все простые числа примерно до 8 миллионов, используя всего около 1 МБ памяти. Один бит хранит информацию об одном числе, а внутренний цикл помечает составные числа с помощью битовых операций. Этот же подход используется в генераторах простых чисел и при выборе размеров хеш-таблиц. Если пост был полезен как и всегда - ставь like 🫢 👉 @Cpportal
2 241
20
Только что наткнулся на довольно безумную штуку — Linux прямо в браузере. ✓ Без установки и настройки, всё работает через Web
Только что наткнулся на довольно безумную штуку — Linux прямо в браузере. ✓ Без установки и настройки, всё работает через WebAssembly ✓ Из коробки доступны Python, C, C++, Vim, cURL и другие инструменты ✓ Есть доступ в интернет, так что можно ставить дополнительные пакеты Потыкать можно здесь: webvm.io Честно, не ожидал, что это будет работать настолько хорошо. 👉 @Cpportal
2 256