Я создал функцию в C, которая принимает значения int и char * buffer в качестве аргументов. Я хотел бы использовать ctypes для вызова этой функции из python и передачи в python byteArray. Я знаю, что сначала вы должны скомпилировать файл C в общую библиотеку (файл .so) и использовать ctypes для вызова этой функции. Вот код, который у меня есть.Как использовать ctypes для передачи byteArray в C-функцию, которая принимает char * в качестве аргумента?
encrypt.c:
#include <stdio.h>
void encrypt(int size, unsigned char *buffer);
void decrypt(int size, unsigned char *buffer);
void encrypt(int size, unsigned char *buffer){
for(int i=0; i<size; i++){
unsigned char c = buffer[i];
printf("%c",c);
}
}
void decrypt(int size, unsigned char *buffer){
for(int i=0; i<size; i++){
unsigned char c = buffer[i];
printf("%c",c);
}
}
А вот файл питон:
import ctypes
encryptPy = ctypes.CDLL('/home/aradhak/Documents/libencrypt.so')
hello = "hello"
byteHello = bytearray(hello)
encryptPy.encrypt(5,byteHello)
encryptPy.decrypt(5,byteHello)
В основном я хочу, чтобы вызвать метод C от питона, пройти через массив байтов питона, и он итерацию через массив и печать каждый элемент