c

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

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

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

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

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

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

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

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

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

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

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

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

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

int main (void) {

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

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

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

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

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

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

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

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

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

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

Полный rand.. Получаем действительно случайные числа на С++

Как вы наверное уже знаете, для получения случайного числа в С++ предусмотрена функция rand(), но она возвращает не совсем "случайные" числа...
Для использования функции rand() необходимо подключить библиотеку stdlib:

#include <cstdlib>

Попробуйте откомпилировать программу: