c

Встраиваем JavaScript в Си приложение

Не так давно вышла свежая версия JS движка Duktape.
И наверное многим стоит о ней узнать. Библиотека компактна! Всего три файла. Но эти три файла позволят Вам встроить полноценный интерпретатор JavaScript в Ваше приложение на Си.

Для начала работы Вам нужно добавить в проект 3 файла: duktape.c, duktape.h и duk_config.h.

Библиотека действительно легковесна.

Cython - python приложение на C

Cython - это язык программирования, который дополняет python возможностью типизированного задания переменных и возможностью компиляции в Си код, который в последствии можно скомпилировать в бинарник.
Python потрясающий язык программирования. Но скорость его выполнения оставляет желать лучшего. И как раз в этом нам может помоч cython. На данный момент он практически без труда умеет компилировать python код в си.

Давайте рассмотрим все на примере.
Вот код python для нахождения чисел Фибаначи.

Обработка сигналов в Linux на C++

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

Потоки (threads) в SDL на с++

Рано или поздно, при написании игры, появляется необходимость выполнять задачи "одновременно".
Представьте только игру в которой всё выполняется шаг за шагом, например вы не можете двигаться пока стреляете, или пока вы не шагнёте противник не сдвинется с места.
Можно конечно изобрести некий велосипед и создать видимость нормальной работы, но мы не искатели таких путей, поэтому научимся создавать потоки в программе при помощи функция предоставленных SDL.
К счастью, всё не тяжелее сортировки ;)
Заинклудьте SDL:

Создание статических библиотек в С

Прежде всего для создания собственной статической библиотеки необходимо написать её реализацию. Мы конечно же создадим библиотеку, которая будет содержать функцию вывода фразы "Привет мир!" на экран.
Создадим реализацию функции в файле libhello.c:

Создание собственной разделяемой библиотеки в С

Разделяемые библиотеки - это такие библиотеки, которые загружаются приложением во время его загрузки. Их могут использовать все приложения системы.
Разделяемые библиотеки имеют несколько имён.
soname - состоит из префикса "lib", имени библиотеки, расширения ".so" после которого следует версия библиотеки.
real name - имя файла, который содержит реализацию библиотеки
linker name - тоже что и soname но без указания версии.

Просмотр содержимого папки при помощи dirent.h

Часто перед программистом стоит задача просмотра содержимого папки. Это довольно просто осуществляется на языке си.
Необходимые библиотеки (вторая для вывода):

#include <dirent.h>
#include <stdio.h>

Заморачиваться классами не будем, создадим главную функцию программы:

int main (void) {

Объявим 2 основные переменные:

Разделение строки в С++

Функция strtok предназначена для разбиения на части заданной строки.

#include <stdio.h>
#include <string.h>

char * tmp = strtok(char *string, char *delimiters);
  • string - разбиваемая строка
  • delimiters - разделитель. Символ которые будет считаться началом/концом строки

Функция возвращает параметр типа char, который содержит первый "кусок" строки. Для получения дальнейших "кусков" необходимо вызвать функцию с первым параметром NULL