• Как языки, исполняемые на ВМ, пишут в консоль?

    saboteur_kiev
    @saboteur_kiev
    software engineer
    stdout это просто дескриптор, который открывает консоль.

    Для каждой консольной программы открывается три дескриптора с номерами 0, 1, 2 (stdin, stdout, stderr), куда они могут писать.

    /dev/fd/1
    Нет, fd это просто файловый дескриптор/1
    правильный путь будет /proc/ID_процесса/fd/1
    то есть у каждого процесса stdout свой.

    Ну и еще. Неважно какой язык. Это про архитектуру операционки, а не язык.
    Ответ написан
    5 комментариев
  • Как из c++ выполнить python?

    Vindicar
    @Vindicar
    RTFM!
    Ну для начала нужно решить, нет ли возможности оставить две программы отдельно, связав их через стандартный ввод/вывод, файлы или сокеты? Пусть одна запускает другую просто как дочерний процесс, это проще всего.

    Если это категорически должна быть одна программа, то нужно решить, кто будет "главным".

    Если главным будет Питон, который должен вызывать код на C/C++ (оформленный в виде DLL), то может пригодиться модель ctypes. Альтернативно, можно написать модуль интерпретатора.

    Если главным будет C++, который должен выполнять код на питоне, то тут уже нужно читать про embedding python.
    Ответ написан
    Комментировать
  • Почему в C++ всё именно так?

    gbg
    @gbg Куратор тега C++
    Любые ответы на любые вопросы
    Ответы на ваши вопросы в основном можно отрыть в стандарте языка, или путем нескольких месяцев практического решения задач, без этого моя болтовня вам понимания не добавит.

    Попытки сразу охватить все тонкости языка гарантируют вам скорее депрессию, чем знания, так что для начала, наберитесь опыта в решении несложных задач и понимании синтаксиса, а уже потом начинайте приставать к тому
    "каким синтаксисом лучше инициализировать массив". Практически всегда, чтобы вы ни понаписали при инициализации статических данных, на выходе у вас будет одно и тоже.

    1) Какая ошибка? Почему любители задавать вопросы по C++ думают, что у каждого программиста в голове компилятор?
    2) Нет, у примитивных типов нет конструкторов и методов
    3) Если коротко, так как int - примитивный тип, у вас все случаи в итоге выражают одно и тоже - объявление и определение одновременно с инициализацией.
    4) Наверное, вы уже поняли, что использовать везде int - плохая возможность для иллюстрации.
    5) void* - это какой-то адрес в памяти. Так как C++ работает в том числе и низкоуровневыми данными, это задача программиста верно интерпретировать то, что находится в памяти по этому адресу. Огромное количество системных функций из POSIX или WINAPI, или OpenGL будут возвращать вам такой указатель.

    6) Потому что они ведут себя разным образом. k = 8; p = 8; a = 13; k+=++a; a=13; p+=a++; /*k=22; p=21*/;
    Поэтому нужны оба.

    7)Потому что так написано в стандарте - sizeof пустой фигни = sizeof(char)
    8) std всегда с вами.
    9) как реализовали разработчики компилятора
    10) как реализовали разработчики компилятора
    Ответ написан
  • Какой код правильнее?

    @MarkusD Куратор тега C++
    все время мелю чепуху :)
    Любой написанный человеком код всегда должен быть полностью понятен другому человеку при чтении. Важно обратить внимание на то, что код читателю должен быть понятен уже просто при чтении, а не при запуске и, тем более, не при трассировке. Читатель должен иметь возможность не задаваться вопросами о причинах существования написанного кода.

    Вопросов к первому варианту нет. Тут сразу и наглядно видно агрегатную инициализацию, т.к. тип Book является агрегатным.

    Ко второму варианту есть вопросы. Какова цель присутствия auto вместо явного указания типа переменной? Зачем писателю потребовалось дважды указать тип, заменив первое указание на auto? Какова цель инициализации копией для данной переменной? Зачем писатель написал так сложно?
    Ответы на каждый вопрос должны предоставлять веское доказательство необходимости существования именно такого кода.

    Чистый код не вызывает у читателя вопросов. Чистый код не молит стереть его или срочно отрефакторить. С чистым кодом приятно работать. Чистый код приятно писать. И самое важное: за чистый код автору не стыдно.
    А вот за грязный код, вроде второго варианта, писателю должно быть стыдно, т.к. писатель таким своим кодом ворует время своих сотрудников и у самого себя в будущем через то, что заставляет тратить это время на то чтобы вчитаться и понять написанное.
    Ответ написан
    Комментировать
  • Как вывести содержимое файла имея только команды echo и ls?

    saboteur_kiev
    @saboteur_kiev Куратор тега Linux
    software engineer
    echo $(<./-text.txt-)
    Ответ написан
    Комментировать
  • Как создать кастомное контекстное меню?

    @YuryBorodkin
    Android dev
    Особо кастомайзить дефолтный нельзя, да. Список показать разве что.
    Но можно в него передать свой View, задизайненый как душе угодной.
    PopupWindow(View contentView, int width, int height, boolean focusable)

    Смотреть рас, два
    Ответ написан
    Комментировать
  • Как сделать чтобы при переносе строки изменялась высота элемента?

    ArsenyMatytsyn
    @ArsenyMatytsyn Куратор тега CSS
    Руководитель frontend направления, предприниматель
    2 комментария
  • Electron говорит "Require is not defined". Что сделать?

    @Wynell_ru
    Не буду себе ничего присваивать, мне кажется, ответ на этот вопрос уже есть
    https://stackoverflow.com/questions/44391448/elect...

    Переведу:
    С пятой версии по умолчанию интеграция NodeJS (nodeIntegration) отключена.
    Вы можете включить ее при создании BrowserWindow:
    app.on('ready', () => {
        mainWindow = new BrowserWindow({
            webPreferences: {
                nodeIntegration: true
            }
        });
    });
    Ответ написан
    Комментировать
  • Где находятся установленные расширения VS Code?

    tomnolane
    @tomnolane
    профессиональный разработчик
    (если говорить про Windows 10 и default установку), то тут: C:\Users\username\.vscode\extensions\
    Ответ написан
    1 комментарий
  • Как настроить VS Code для C++ в Windows?

    myjcom
    @myjcom Куратор тега C++
    Комментировать
  • Плохие ли транслируемые ЯПы?

    SagePtr
    @SagePtr
    Еда - это святое
    Зависит от конкретных задач. Для одних задач лучше всего подходят одни языки, для других - другие. В противном случае многообразия языков программирования не было бы, был бы только один язык, идеально подходящий подо все задачи.
    Ответ написан
    Комментировать
  • Плохие ли транслируемые ЯПы?

    Lillipup
    @Lillipup
    Allons-y, Алонсо!
    Нет плохих языков, есть плохие программисты.
    Ответ написан
    1 комментарий
  • Как создать свой аналог cout на голом C++?

    @res2001
    Developer, ex-admin
    Вы хотите именно самостоятельно реализовать или задача не использовать стандартную библиотеку?
    Если самостоятельно, то для начала изучите https://en.cppreference.com/w/cpp/header/cstdarg
    и все что связано с функциями с переменным числом аргументов.

    Если второе то, это значит, что вы должны использовать функции предоставляемые ОС. Для Windows это WinAPI, для Линукс - POSIX.
    В винде уже есть готовые варианты - функции семейства StringCbPrintf.
    В Линукс ... ну тут все равно от стандартной библиотеки ни куда не уйти :), т.к. это часть ОС и POSIX.
    Ответ написан
    7 комментариев