• Как открыть/создать файл из под другого пользователя?

    saboteur_kiev
    @saboteur_kiev Куратор тега Linux
    software engineer
    Создавать и открывать файлы из-под другого пользователя - некорректно.

    Почему бы не добавить всех нужных пользователей в группу, и пользоваться групповыми правами?

    Второй вариант - дать пользователю право на sudo, тогда он может от имени рута выполнять su (чтобы выполнить комнаду от другого пользователя), либо от имени рута выполнить команду chown (сменить владельца)

    Третий вариант - настроить ssh ключи на локальной машине для пользователя, чтобы он мог выполнять команды через remsh
    remsh user2@localhost
    Ответ написан
    Комментировать
  • Нужно найти один миллиард знаков после запятой при извлечения корня из 5?

    @Zzzz9
    Разложите в ряд и прибавляйте до опупения :)
    Ответ написан
    Комментировать
  • Чего то я не понял с функциями из библиотеки string.h?

    @abcd0x00
    Все функции из пакета возвращают число int.

    Во-первых, string.h - это не пакет, а набор объявлений для группы функций из стандартной библиотеки функций языка C. То есть библиотека включает в себя вообще все функции, а файлы с объявлениями позволяют подключать (объявлять) их только нужными группами.

    Во-вторых, не все функции для работы со строками возвращают int. Это ты сам придумал, где-то что-то перепутав. Строковые функции бывают разными - и возвращающими int, и возвращающими char *, и возвращающими size_t. Функция strstr() возвращает char * - указатель на начало найденной подстроки, либо NULL, если подстрока не найдена.

    Если тебе нужно определить позицию найденной подстроки в строке, то нужно из адреса этой подстроки вычесть начало всей строки.
    Ответ написан
    Комментировать
  • Как на C++ выполнить параллельные математические вычисления?

    OpenMP
    #include <iostream>
    
    int main(int argc, char* argv[]) {
    
    	#pragma omp parallel for
    	for (size_t i = 0; i < 1000000; ++i)
    	{
    		std::cout << i << std::endl;
    	}
    }


    Конкретно этот пример работает медленнее на нескольких потоках из-за синхронизации ввода-вывода. Для эффективного использования результат нужно накапливать в памяти, затем выводить.
    Ответ написан
    21 комментарий
  • Есть ли смысл определять новые ключевые слова в c++?

    GavriKos
    @GavriKos
    Скорее всего будет сбивать с толку.
    Ваш интерфейс ни разу не интерфейс - дефайном вы никак не запретите добавить в него реализацию.
    Вообще такие дефайны опасны - а что если у меня имя переменной будет abstract?
    Ну auto на dynamic вообще бесмысленно - калька с другого ЯП? А зачем? Букв больше, автоподстановка и ништряки IDE могут неадекватно переварить такое.
    Ответ написан
    Комментировать
  • Почему не прописывает цифры?

    @vilgeforce
    Раздолбай и программист
    Ошибка в %t. Где вы такой спецификатор нашли?
    Ответ написан
    Комментировать
  • ООП головного мозга?

    AtomKrieg
    @AtomKrieg
    Давай я поищу в Google за тебя
    Когда вы пишете лабораторку или собственный маленький проектик, то можете делать как вам угодно.
    А теперь представьте себе ситуацию когда в команде программистов вы написали класс с публичными переменными, а потом подошел руководитель проекта и сказал что на каждое присваивание переменной надо делать запись в лог-файл. Теперь все программисты, которые пользовались вашим классом, вместо работы переписывают код с переменных на сеттеры.

    Советую почитать "Совершенный код", чтобы не задавать подобные вопросы.
    Ответ написан
    2 комментария
  • Почему не работает функция?

    Nipheris
    @Nipheris Куратор тега C++
    Для вещественных чисел нет сравнения ==. Есть сравнения (a - b) <= eps. В большинстве случаев так и нужно, т.к. вещественными числами моделируется континуальные величины из реального мира (т.е. те, в которых не обязательно считать с точностью до каждой цифры).

    С другой стороны, для денежных расчётов вещественную арифметику использовать нельзя, т.к. деньги в принципе дискретны. Никто не хочет по определению увидеть 4.74999999...$ вместо 4.75$. Для таких расчетов используются decimal-типы (таких типов не в стандартном C++, есть реализованные в виде библиотек).

    Она должна превращать такие числа 0.475 в такие 475

    Строго говоря, задача поставлена некорректно. Ну или бессмысленно. Такую задачу можно было бы поставить для decimal-типов, которые считаются всегда точно, и количество десятичных цифр в их записи ПРЕДСКАЗУЕМО. А для float у вас будет получаться что-то вроде 4749999999998.

    Помимо накопления ошибок, вы еще не забывайте о том, что не все, даже заданные вами в коде, десятичные константы представимы в двоичном виде без потери точности. Например, познакомьтесь с числом 0.13. Можете просто записать его в константу, и тут же вывести на экран.

    В общем, добро пожаловать в мир машинной арифметики.

    https://en.wikipedia.org/wiki/Floating_point
    https://en.wikipedia.org/wiki/Decimal_data_type
    Ответ написан
    Комментировать
  • Как выглядит этот цикл на Python?

    Комментировать
  • "Python experience is plus" в вакансии Senior C++ Developer и похожих. С чем связано?

    GavriKos
    @GavriKos
    На питоне часто пишут какие то мелкие тулзы для внутренних нужд компании. Возможно именно это и есть причина. А вообще - вы можете прийти на собеседование и спросить - зачем им питон :-)
    Ответ написан
    Комментировать
  • Для чего нужны боты на сайт?

    Суть любого робота в автоматизации того, что делать руками не хочется или невыгодно. А что конкретно автоматизировать, это зависит от конкретного случая.

    Примеры:
    • боты для DDOS - см. определение DDOS-атаки
    • боты для сайтов/форумов/чатов - рекламный спам, авторегистрация пользователей; бывают и полезные вещи, например боты-нотификаторы. В ICQ был в своё время популярен бот, отвечающий на ряд запросов - можно было спросить прогноз погоды или рассказать анекдот;
    • боты в MMO-играх: сбор ресурсов, ожидание в очередях и т.п. Также спам в чаты (продажа ресурсов/золота, как легальная так и не очень, рекрутинг в гильдии);
    Ответ написан
    4 комментария
  • С помощью какого инструмента создать информационное приложение?

    GavriKos
    @GavriKos
    Если навыков программирования нет - то проще всего заказать специалисту разработку. Причем хороший специалист еще и подскажет какие то фичи для приложения.
    Ответ написан
    Комментировать
  • Можно ли возвращать лямбды?

    Nipheris
    @Nipheris Куратор тега C++
    Добавлю пару примеров к сказанному MiiNiPaa:
    Вот такой код:
    auto GetLambda() {
        return []( const int &x ) { return x*x ; } ;
    }

    это синтаксический сахар для такого (все это можно было писать еще и до появления лямбд):
    struct Lambda {
    	int operator()(const int &x) { return x * x; }
    };
    Lambda GetLambda() {
    	return Lambda();
    }

    Отличие в том, что явно класс не создается, но принцип тот же. Возможно, на этом примере вам непонятно, зачем вся эта заморочка с классом. Поэтому рассмотрим другой пример. Этот код
    auto GetLambda(int y) {
    	return [y](const int &x) { return x*y; };
    }

    можно переписать так:
    struct Lambda {
    	int y;
    	Lambda(int y) : y(y) { }
    	int operator()(const int &x) { return x*y; }
    };
    Lambda GetLambda(int y) {
    	return Lambda(y);
    }

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

    nki
    @nki
    bezkart.ru готовая система лояльности
    Посмотри требования к вакансиям на интересующую тебя должность и думай чего тебе не хватает.
    Ответ написан
    Комментировать
  • Как вызвать функцию при завершении работы двух других?

    Создаете поток, в котором ждете наступления обоих событий (event), каждое из которых взводится в соответствующей функции обратного вызова (callback).
    Ответ написан
    Комментировать
  • Триггеры в Delphi?

    @deliro
    Пока ты не сделал эту глупость, я тебя предостерегу: хранить md5 от пароля в 2016 году - это идиотизм. Чуть меньший, чем хранить пароль открыто.
    Ответ написан
    1 комментарий
  • Что изучать после Delphi?

    Zhbert
    @Zhbert
    Technical Writer, Linux user
    Не в литературе дело. Делфи, как объектно-ориентированный паскаль, очень хорош для начала, ибо не дает отстрелить себе ноги, как, например, си или плюсы, да и возможностей применения у него вагон. Я когда-то сам изучал его (правда, после ассемблера под пикмикро) как первый высокоуровневый язык, на котором я писал тогда первые свои "вирусы". Могу сказать одно - если ты постиг основы программирования и познал алгоритмику и приобрел соответствующее мышление, то дальше тебе язык станет не так важен, ибо основы везде в принципе одни и те же, а постигнуть некоторые отличия или плюшки отдельных языков не так уж и сложно. Я бы тебе посоветовал дальше сделать неменого не так, как ты хочешь, ибо изучения языка только ради языка - путь в тупик. Тебе нужно поставить себе задачу (например, ты хочешь какую-то прогу сделать для себя, которая тебе нужна), и начинаешь ее пилить. Для реализации выбираешь более подходящий язык (тут можно и посоветоваться, да), ориентируясь скорее на особенности языков и из, скажем так, ориентированность, а не на хотелку или придурь (знаю чела, который из-за каких-то своих закидонов пишет сайты на С, и считает это нормой). Выбрав язык и задачу - начинаешь писать, по пути решая возникающие трудности. Такой подход дает тебе два плюса - вовлеченность и заинтересованность, которые быстро уходят, если ты учишь что-то просто так, читая книгу.

    Все это ИМХО, конечно же.
    Ответ написан
    Комментировать
  • Консольный калькулятор на C++. Как лучше сделать?

    ThePyzhov
    @ThePyzhov
    iOS Ninja
    Страуструп - Принципы и практика программирования, если не ошибаюсь, то в 6 главе вроде про это рассказывается. Там описывается полный процесс создания данного калькулятора, с определением приоритетов действий, при записи выражения в строку.
    Ответ написан
    1 комментарий
  • Как записать в самое начало строки?

    GavriKos
    @GavriKos
    Читаете весь файл в переменную. В переменной меняете что вам нужно. Всю переменную записываете в файл, удалив все что там было до этого.
    Ответ написан
    Комментировать
  • Функциональное приведение типов?

    @res2001
    Developer, ex-admin
    В первом случае сначала приводится 1 к double явно, потом неявно 3 в double, т.к. первый аргумент операции дабл, а потом выполняется деление двух даблов.
    Во втором случае выполняется целочисленное деление с результатом 0, затем 0 приводится к даблу.
    Ответ написан
    Комментировать