Прості приклади використання FFI
Перед зануренням у деталі FFI API, давайте розглянемо кілька прикладів спрощеного використання FFI API у стандартних задачах.
Зауваження :
Для деяких прикладів знадобиться бібліотека libc.so.6. Вони не працюватимуть у системах, де її немає.
Приклад #1 Виклик функції загальної бібліотеки
Loading...
Результат виконання наведеного прикладу:
Привет, мир!
Зауваження :
Зверніть увагу, що деякі функції C потребують певних угод про виклики, наприклад:
__fastcall
__stdcall
или,__vectorcall
Приклад #2 Виклик функції та повернення структури через аргумент
Loading...
Висновок наведеного прикладу буде схожим на:
int(0)
int(1555946835)
object(FFI\CData:struct timezone)#3 (2) {
["tz_minuteswest"]=>
int(0)
["tz_dsttime"]=>
int(0)
}
Приклад #3 Доступ до існуючих змінних C
Loading...
Результат виконання наведеного прикладу:
int(0)
Приклад #4 Створення та модифікація змінної C
Loading...
Результат виконання наведеного прикладу:
int(0)
int(5)
int(7)
Приклад #5 Робота з масивами C
Loading...
Результат виконання наведеного прикладу:
int(25)
int(523776)
int(1024)
int(8192)
Приклад #6 Робота з переліками C
Loading...
Результат виконання наведеного прикладу:
int(0)
int(2)
int(3)