Показаны сообщения с ярлыком C. Показать все сообщения
Показаны сообщения с ярлыком C. Показать все сообщения

понедельник, 26 марта 2018 г.

Установка в Linux Mint 18.3 различных инструментов, используемых для программирования

Мне не нравится современный пользовательский интерфейс Linux Ubuntu, но в то же время мне нравится более классический интерфейс Linux Mint 18.3, построенной (согласно официальной информации) на базе Ubuntu 16.04. Поэтому на моём ноутбуке установлен Linux Mint 18.3.

вторник, 17 декабря 2013 г.

getc и fgetc: в чём различие?

В языках C и С++ функции getc и fgetc делают одно и то же: читают из указанного потока очередной символ. Однако в виду того, что getc может быть реализована в виде макроса, мы получаем следующие особенности использования указанных выше функций (см. "Advanced Programming in the UNIX Environment, 3rd Edition", стр. 151):

пятница, 2 августа 2013 г.

Использование в коде C библиотек, написанных на C++

На C++ можно писать библиотеки, которые можно было бы использовать в др. языках программирования, в т.ч. не являющихся объектно ориентированными. В частности, меня интересовал вопрос о написании на C++ таких библиотек, которыми можно было бы воспользоваться в C. Я в курсе о том, что следует использовать extern "C", однако этим дело не заканчивается, поскольку по ходу реализации такой библиотеки выявляется большое количество подводных камней, которые следует как-то обходить.

суббота, 29 июня 2013 г.

Создание DLL консольными средствами Visual Studio

MS Visual Studio имеет графический интерфейс для разработки приложений и управления их проектами и решениями. Однако за кулисами всё выполняется консольными утилитами, так же входящими в состав этой IDE. В данной заметке я покажу маленький пример создания dll файла консольными средствами MS Visual Studio, с последующим его использованием в другом приложении. В качестве языка программирования использован C++. Весь приведённый ниже программный код можно набирать в любом текстовом редакторе (я использовал Notepad++).

воскресенье, 28 октября 2012 г.

Шифр Виженера на C89

Написал на C маленькую программку по шифрованию/расшифровыванию любых файлов, с использованием шифра Виженера. Программа очень простая и подходит для защиты от обычных пользователей (не хакеров). Размеры исходного и зашифрованного файлов совпадают. Для шифрования/дешифровки используется один и тот же ключ (произвольная строка текста).

Любопытный момент: эту программку можно использовать для шифрования/расшифровывания файлов по принципу "одноразового блокнота" - в этом случае мы получаем абсолютную криптографическую стойкость, т.е. информация защищена на 100% от кого угодно, в т.ч. от хакеров и спецслужб. Однако вряд ли кому-то из нас потребуется такого уровня защита, поэтому можно ограничиться произвольным ключом шифрования (главное - самому его не забыть).

пятница, 15 июля 2011 г.

Реверс строки на Си без использования дополнительного буфера

  В интернете прочитал, что в одной компании при собеседовании с программистом (на тему приёма на работу), ему, помимо всего прочего, задают небольшую задачку на Си, которую нужно быстро решить (автор пишет, что должно быть не более 5 строк кода).

воскресенье, 12 июня 2011 г.

Использование структуры определённой в др. файле

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