• Удалить байты из файла без его полной перезаписи можно только с конца?

    mindtester
    @mindtester Куратор тега Windows
    http://iczin.su/hexagram_48
    философски все классно.. а где примеры C# кода то?
    мне не известен способ, без перезаписи файла (если ОС умеет оптимизировать - хвала ей upd но.. назовите ее )))
    а базовый набор инфы, к примеру тут - https://metanit.com/sharp/tutorial/5.4.php

    ps в современных компах, при размерах файла в считанные мегабайты - это все мелочи

    pps
    - нужна синхронизация по блокам/кластерам, в теории - да, нет проблем, вот только не C#

    ppps
    в лучшем случае это будут вызовы api системы, но тогда повторюсь - примеры в студию, и я присоединюсь к аплодисментам
    Ответ написан
  • Минимальная допустимая температура для эксплуатации ПК?

    Jump
    @Jump Куратор тега Системное администрирование
    Системный администратор со стажем.
    Работает и при -30 вполне нормально.
    Но есть нюансы.
    • При определенных условиях возможно образование конденсата - а это замыкание со всеми вытекающими.
    • Механика вроде жестких дисков не очень любит сильные перепады температур.
    • Электролитические конденсаторы менее эффективно работают при низких температурах, в итоге возможны проблемы с питанием.

    Эксплуатировать можно, но осторожно.. Главное избегать условий при которых может образоваться конденсат, и по возможности не охлаждать очень сильно.
    Ответ написан
    Комментировать
  • Как на 32-битной платформе в переменную типа intptr_t может влезть максимальный адрес ссылки?

    @Mercury13
    Программист на «си с крестами» и не только
    зачем нужно было вообще вводить intptr_t если есть uintptr_t, в который адрес точно влезет?

    intptr_t — разность двух адресов.

    И, более того, как в ЗНАКОВУЮ переменную типа intptr_t можно поместить 32-битный адрес памяти, если в этом числе 1 бит уходит на знак, а для данных остаётся 31 бит?

    Учите матчасть — как действует дополнительный код, почему машинные целые изображают в виде круга и почему знаковое и беззнаковое сложение выполняется одними и теми же операциями add/sub. В общем, данные записываются во все 32 бита. И в знаковый тоже.

    как может БЕЗЗНАКОВОЕ число равняться числу СО ЗНАКОМ?

    А вот сравнивать их — ошибка, и не зря большинство компиляторов выводит предупреждение. Оба надо перевести либо в unsigned, либо в signed, либо в более крупный знаковый целый тип.
    Ответ написан
    2 комментария
  • Как злоумышленник может использовать ssh, подключившись к нему?

    gbg
    @gbg
    Любые ответы на любые вопросы
    Все. В том числе, воспользоваться дырами и поднять себе привилегии до суперпользователя.
    Ответ написан
    Комментировать
  • Как из одной формы управлять прогресс-баром в другой?

    devspec
    @devspec
    Помогло? Отметь решением
    Можно сделать через делегаты или события. Красивее через события.
    https://stackoverflow.com/questions/977326/propaga...
    Ответ написан
    Комментировать
  • Как сделать счетчик просмотров страниц +1 на каждую страницу отдельно?

    Rsa97
    @Rsa97
    Для правильного вопроса надо знать половину ответа
    Для начала, использовать вместо файла базу данных. Затем либо смотреть на referer запроса, но в браузере можно отключить его отправку, либо с каждой страницы посылать запрос с уникальным ID страницы.
    Ответ написан
    1 комментарий
  • Как происходит линковка приложений?

    @res2001
    Developer, ex-admin
    1.обычно у каждого компилятора свой runtime. Для VC - это разные версии msvcrt.dll.
    2.Читайте на сайте разработчика компилятора. В основном это не сильно принципиально, разве что вы используете какие-то специфические плюшки, которые не описаны в стандарте, но есть в конкретном компиляторе и его стандартной библиотеке.
    3.runtime - это как правило стандартная библиотека + точка входа и завершения программы (а ваш main вызывается уже из runtime).
    4.Можно. Обычно стандартная библиотека поставляется как в виде динамической библиотеки, так и статической. Выбор какую использовать за вами, задается опциями компилятора.
    5.Не большой. Но тут лучше говорить не про оверхед, а про "написание программы на чистом" WinAPI/POSIX и других OS API. На сколько это трудозатратней по сравнению с использованием стандартной библиотеки.
    По собственному опыту скажу, что написание на чистом WinAPI довольно трудозатратное (и время затратное) занятие, затратнее примерно в 1.5 по сравнению использованием stdlib. Но у меня это был первый и пока единственный опыт, дальше, видимо должно быть проще.
    Ответ написан
    2 комментария
  • Можно ли сделать массив меток goto?

    @Mercury13
    Программист на «си с крестами» и не только
    Вы не представляете себе, так обычно и работает switch.
    prog21.dadgum.com/166.html
    Ответ написан
    5 комментариев
  • Почему при выводе на экран через форматы %d и %u получаются числа -14 и 4294967282?

    Rsa97
    @Rsa97
    Для правильного вопроса надо знать половину ответа
    101010 = 3F216, значит в char запишется F216
    Когда вы пробуете печатать как целое число, то значение приводится к типу int, соответственно получается FFFFFFF216
    Как знаковое (%d), значение FFFFFFF216 = -1410
    Как беззнаковое (%u), FFFFFFF216 = 429496728210
    Ответ написан
    3 комментария
  • Как правильно собрать .exe на C++/CLR?

    Nipheris
    @Nipheris Куратор тега C++
    1. Нужно собрать релизную версию приложения. Не распротраняйте на другие компьютеры дебажные версии. Тогда "d" требовать не будет.
    2. Т.к. приложение на C++, оно будет требовать рантайм. Этот рантайм можно как слинковать статически, так и оставить динамически загружаемым. Это настраивается в свойствах проекта. Если слинковать статически - то тогда dll не потребуется, но и обновить рантайм отдельно от приложения будет невозможно.
    3. Если поставлять рантайм отдельно, как динамически загружаемый (т.е. чтобы была dll), то можно либо класть его рядом с exe, либо устанавливать redistributable версию райнтайма. Второе предпочительнее, т.к. тогда рантайм можно будет обновить с помощью системной обновлялки, если в нём будут найдены критичные проблемы.
    4. Чтобы точно узнать, что требует EXE для своего запуска (не считая модулей, загружаемых с помощью LoadLibrary), воспользуйтесь Dependency Walker.

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

    Существует 3 основных подхода.
    1. То, что вы имеете ввиду - после accept() создавать отдельный поток на каждого лиента и обрабатывать пришедший коннект в нем.
    2. Использовать один поток, переводить сокеты в неблокирующий режим и использовать select() или poll() / epol() / ... для обнаружения данных поступивших в сокет и их обработки
    3. Использовать модель с несколькими worker'ами. Запускать несколько потоков-worker'ов работающих так же как в п.2, распределять входящие коннекты между ними. Обычно так пишут серверы для достаточно большой нагрузки.
    Достаточно подробный ответ есть здесь: https://www.opennet.ru/base/faq/prog_faq.txt.html, см. "как писать сервера".
    Ответ написан
    1 комментарий
  • Как запустить десктопную программу linux на windows 7?

    Spetros
    @Spetros
    IT-шник
    Существует ли что-то типа wine, но наоборот? Чтобы запустить linux программу на windows?

    cygwin
    Ответ написан
    2 комментария
  • Как создать демона на си?

    zagayevskiy
    @zagayevskiy
    Android developer at Yandex
    Потому что так работает fork. В этом месте программа как бы разделяется на две части - продолжает работать родитель и начинает работать потомок. Определить, где вы находитесь, можно по результату fork. При успешном завершении родителю возвращается PID процесса-потомка, а потомку возвращается 0.
    Ответ написан
    Комментировать
  • Как гибернация Windows относится к другим дискам и системам?

    Frankenstine
    @Frankenstine
    Сисадмин
    Если диск смотирован в системе перед сном, то в её оперативной памяти содержится закэшированная структура файловой системы. Если с этим же диском будет работать затем другая операционная система, то внесённые ею в файловую систему изменения будут не совпадать с данными, находящимися в памяти уснувшей, и после пробуждения из спячки результат непредсказуем. Как минимум потерянные файлы, как максимум - полная порча файловой системы и BSOD.
    До тех пор, пока тома/диски других систем не используются текущей системой, её можно ложить в сон и пользоваться другими осями, не трогающими разделы уже спящей системы.
    Ответ написан
    2 комментария
  • Можно ли обновить пиратскую копию windows до windows 10 и получить лицензию?

    RusTech
    @RusTech
    Лицензия - это не отсутствие надписи в углу "ВАША WINDOWS НЕ ЛИЦЕНЗИОННАЯ", а документы на эту копию windows. Из пиратки лицензию не сделать при всём желании. Это если конечно важен именно вопрос её наличия, допустим в организации.
    Ответ написан
    Комментировать
  • Какие параметры надо передать в ReadConsole?

    jcmvbkbc
    @jcmvbkbc
    "I'm here to consult you" © Dogbert
    stdcall [ReadConsole],GENERIC_READ,Message,13,0,0

    Первым параметром надо дескриптор файла консоли передать. GENERIC_READ -- это не файловый дескриптор, это требуемый доступ к файлу, чтобы ReadConsole могла из него читать. Требуемый дескриптор можно получить вызовом GetStdHandle(STD_INPUT_HANDLE).
    И я не уверен, что lpNumberOfCharsRead может быть NULL.
    Ответ написан
    Комментировать
  • Как не допустить вход на сайт двух пользователей под одним логином?

    kaiten
    @kaiten
    Архитектор ИС
    Плохая идея не пускать, вы ограничиваете пользователя. Человек зашёл на работе на сайт, дома уже не зайдёт...

    Адекватный вариант выкидывать пользователя в старых местах и пускать в новых.
    Ответ написан
    4 комментария
  • Преобразовать строку в base64?

    petermzg
    @petermzg
    Самый лучший программист
    У вас правильно преобразует.
    «=» специальный код суффикса
    Из википедии:
    "Если кодируются только один или два байта, в результате получаются только первые два или три символа строки, а выходная строка дополняется двумя или одним символами «=». Это предотвращает добавление дополнительных битов к восстановленным данным. "
    Ответ написан
    Комментировать