• Получить handle и размер файла С++?

    TrueBers
    @TrueBers
    Гуглю за еду
    Код
    #include <iostream>
    #include <numeric>
    #include <fstream>
    #include <filesystem>
    namespace fs = std::filesystem;
    
    using file_buffer_ptr  = std::unique_ptr<std::vector<char>>;
    using file_buffer_iter = std::istreambuf_iterator<file_buffer_ptr::element_type::value_type>;
    using file_list        = std::vector<file_buffer_ptr>;
    
    static file_buffer_ptr fillBuffer(const fs::path &currentFile)
    {
        auto fileBuf = std::make_unique<file_buffer_ptr::element_type>();
        fileBuf->reserve(fs::file_size(currentFile));
    
        std::ifstream fileStream(currentFile, std::ios::binary);
        fileBuf->assign(file_buffer_iter(fileStream), file_buffer_iter());
    
        return fileBuf;
    }
    
    int main()
    {
        file_list files;
        auto directory = "/tmp";
    
        try {
            for (auto& currentFile: fs::recursive_directory_iterator(
                                        directory,
                                        fs::directory_options::skip_permission_denied
                                    )) 
            {
                if (!fs::is_regular_file(currentFile))
                    continue;
    
                files.emplace_back(fillBuffer(currentFile));
            }
        } catch (const std::exception &e) {
            std::cerr << "Error: " << e.what() << std::endl;
        }
    
        std::clog << "Found " << files.size() << " files, total size " << 
            std::accumulate(files.begin(), files.end(), 0,
                [] (file_buffer_ptr::element_type::size_type total, const file_buffer_ptr &b) {
                    return total + b->size();
                })
        << " bytes" << std::endl;
    
        return 0;
    }


    А handle никак не относится к C++, это фича конкретной операционной системы.
    Ответ написан
    Комментировать
  • Где найти литературу по 0 day уязвимостям?

    TrueBers
    @TrueBers
    Гуглю за еду
    Уважаемый "Энтузеаст", 0-day, он на то и 0-day, что о нём неизвестно никому, кроме того, кто его открыл и пользуется. Эти уязвимости продаются за сотни тысяч долларов, кто ж их вам на блюдечке отдаст то просто так? Учитесь искать их сами.
    Ответ написан
    2 комментария
  • Coroutine, для чего они нужны?

    @nirvimel
    Coroutines реализуют кооперативную многозадачность между green_threads внутри одного процесса (ОС обо всем этом не догадывается, ее потоки не имеют к этому никакого отношения). В момент "вызова" сoroutine происходит переключение "зеленых" задач вместо собственно вызова функции. Задачи, ожидающие завершение ввода/вывода, получают управление, если их ввод/вывод завершен (или таймаут истек).

    Для чего все это нужно? Потоки ОС слишком тяжелые. Они занимают много стека (памяти). Их создание/уничтожение требует времени. Переключение между ними происходит через ядро ОС (слишком медленно). Большое количество, одновременно активных, потоков может подвесить всю систему. В реальных приложениях/серверах количество потоков типично измеряется максимум десятками ("зеленых" потоков могут быть десятки тысяч). Для преодоления проблемы C10K назрела необходимость переходить на асинхронное программирование с "зелеными" потоками вместо потоков ОС. Осталась одна проблема - переключение задач (которое теперь должно осуществляться вручную); кто и в какой момент должен это делать?
    Это переключение может происходить в io_loop (цикле ввода/вывода) специальной библиотеки, которая отвечает за асинхронность всего приложения (например, asyncio в python). А чтобы поток управления из кода возвращался в io_loop, нужно заменить прямые вызовы функций на асинхронные "вызовы" короутин.

    В начале 90-x вытесняющая многозадачность на процессорах 80386 казалась совершенно прорывной технологией. Кто бы мог подумать, что через 20-25 лет мы (в каком-то смысле) вернемся назад к кооперативной многозадачности.
    Ответ написан
    Комментировать
  • По какой книге учить язык си?

    ThePyzhov
    @ThePyzhov
    iOS Ninja
    The_C_Programming_Language_Book_2th_Ed.j
    Ответ написан
    Комментировать
  • Для чего фигурные скобки после объявления переменной в C++?

    @SMA2
    Инициализация пустым значением.
    Это универсальное обозначение для различных типов переменных.
    В данном случае речь идет о целом числе, потому эквивалентно = 0
    Но фигурные скобки более общий метод, подходящий для переменных различных типов.

    То, что пример работает без инициализации - просто везение.
    Использование неинициализированной переменной - частая ошибка.
    Ответ написан
    1 комментарий
  • Как написать что то подобное (подробнее внутри)?

    @dude2012
    В каждой операционной системе есть набор базовых контролов (ListView, TreeView, Panel, Image, Tab, SpinEdit etc) и API (Application Programming Interface) для их обработки. Каждый высокоуровневый язык имеет библиотеки, который адаптируют эти API вызовы в свои классы. Так же у многих языков (средств разработки) есть свой конструктор форм. Контролы кидаются на форму, в редакторе свойств выставляются нужные значения, а на нажатия кнопки и другие события вешается код. Сейчас программировать достаточно просто. Накидал контролов на форму, уже почти готовая программа.
    Это что касается интерфейса.
    Для хранения файлов игр используется свой формат. Очень часто используются классы для архивации. То есть файл с картой представляет из себя архив данных, каждый файл из которых имеет свой формат. А может быть используется стандартные типы файлов, как, например, png. Классы внутри программы читают файлы и отрисовывают их в соответствующих структурах интерфейса. Один файл в TreeView другой в ListView и так далее.
    Ответ написан
    Комментировать
  • Как правильно организовать логику модуля-слайдера?

    BedwaRe
    @BedwaRe
    Пиши код
    В одном из своих проектов мы использовали библиотеку Sly. Там есть всё что Вам нужно. Но допиливать напильником Вам придется самой =)
    Ответ написан
    Комментировать
  • Можно ли купить IP адрес в сети интернет?

    begemot_sun
    @begemot_sun
    Программист в душе.
    Можно купить подсеть, но это вам точно не по карману.
    Ответ написан
    1 комментарий
  • Занятия по робототехнике для школьников должны быть платными или бесплатными?

    iiil
    @iiil
    Инженер и вэб-дизайнер, рисую.
    За сегодня Вы задали несколько вопросов, и все они медленно подвигают к главному, вот этому.
    Если бы не звучало слов: школа, дети, кружок — то я бы совершенно точно сказал: «Да, занятия должны быть платными». Но так как эти слова звучат, то во-первых: куда делись учителя, которые учили (в том числе меня, в том числе факультативно) всему бесплатно? Я сейчас не о стоимости деталей и Вашем желании выйти из минуса, а о желании зарабатывать на этом. Но оставим этот философский вопрос, не мне Вас критиковать, я детей ничему не учу.

    . . . в одной московской школе

    Как именно у Вас налажены отношения со школой, каким образом Вы проводите оплату часовых занятий? Ведь Вы же не можете брать с учеников плату, не делясь со школой, которая предоставляет Вам помещение (если я все правильно понимаю), соответственно, каким образом будут эти отношения оформлены в будущем? Если Вы начинаете зарабатывать на этом хобби — Вам необходимо абсолютно прозрачно оформить отношения и со школой, и с родителями детей. Это вопрос законности данного бизнеса.
    А второй вопрос: рынок. Что он Вам скажет? Найдете ли Вы своего ученика, если цена увеличится.
    В общем-то, если все будет сделано как надо, то почему нет? Вы не должны расплачиваться своим свободным временем и знаниями за нежелание/отсутствие возможности родителей занять своих чад чем-то интересным.
    Ответ написан
    4 комментария
  • Полезные книги для веб-разработчика?

    @Misha7
    PHP. Объекты шаблоны и методики программирования.
    Ответ написан
    Комментировать
  • Полезные книги для веб-разработчика?

    morflot
    @morflot
    Frontend Developer
    Ответ написан
    Комментировать
  • Полезные книги для веб-разработчика?

    iskros
    @iskros
    Руководитель проектов
    Комментировать
  • Полезные книги для веб-разработчика?

    sevasargsyan
    @sevasargsyan
    Веб разработчик
    MySQL 5 Авторы Игорь: Симдянов и Максим Кузнецов.
    jQuery Подробное руководство по продвинутому JavaScript Авторы: Бер Бибо, Иегуда Кац.
    .JQuery Практическое применение Автора: Стивена Хольцнера.
    PHP в примерах Автора: Стивена Хольцнера
    Ответ написан
    Комментировать
  • Какие есть полезные и современные книги, посвященные frontend разработке?

    dpigo
    @dpigo
    Front-end developer
    Наиболее систематизированная информация, но не все по фронтэнду:
    habrahabr.ru/post/77179/

    По мелочам:
    habrahabr.ru/qa/25989/
    habrahabr.ru/qa/11259/
    habrahabr.ru/qa/2850/
    habrahabr.ru/qa/21058/
    habrahabr.ru/qa/8852/
    habrahabr.ru/company/piter/blog/155275/
    habrahabr.ru/post/149082/
    Ответ написан
    Комментировать
  • Полезные книги для веб-разработчика?

    @aiwan9
    Ilia Alshanetsky
    «Guide to PHP Security»
    Меня в свое время эта книга по безопасности PHP очень впечатлила
    Ответ написан
    Комментировать
  • Полезные книги для веб-разработчика?

    Kron0S
    @Kron0S
    Ответ написан
    Комментировать
  • Полезные книги для веб-разработчика?

    @pelenka
    Николай Мациевский «Разгони свой сайт»
    Очень полезная книга особенно для тех, кто занимается высоконагруженными проектами.
    Помогла взглянуть по новому на аспекты клиентской разработки.
    Ответ написан
    Комментировать
  • Полезные книги для веб-разработчика?

    По безопасности скриптов PHP — Кузнецов «Головоломки для хакеров на php»
    Ответ написан
    Комментировать
  • Полезные книги для веб-разработчика?

    un1t
    @un1t
    PHP
    Мэтт Зандстра «PHP. Объекты, шаблоны и методики программирования»
    Леон Аткинсон, Зеев Сураски «PHP 5. Библиотека профессионала»

    Javascript
    developer.mozilla.org/En/JavaScript

    Дэвид Флэнаган «JavaScript. Подробное руководство»

    MySQL
    Поль Дюбуа «MySQL»
    Ответ написан
    Комментировать