У меня есть файл, который я сохранил в структуре в сегменте из другого процесса A. Теперь из процесса BI нужно получить этот файл и преобразовать его в байты, чтобы я мог отправить его или отправить при чтении его байтов, что бы быть идеальным способом сделать это? см. ниже:
typedef struct mysegment_struct_t {
FILE *stream;
size_t size;
}
поэтому у меня есть сопоставление с сегментом, и все просто не уверены, как его получить сейчас
size_t bytes_sent;
struct mysegment_struct_t *fileinfo =
(struct mysegment_struct_t *)mmap(NULL,size,PROT_READ | PROT_WRITE, MAP_SHARED, fd,0);
//read stream into a byte array? (how can this be done in c)
//FILE *f = fopen(fileinfo->stream, "w+b"); //i a bit lost here, the file is in the segment already
//send bytes
while (bytes_sent < fileinfo->size) {
bytes_sent +=send_to_client(buffer, size); //some buffer containing bytes?
}
Я новичок в C программировании, но Я не могу найти что-то вроде чтения файла в памяти в байтовый массив, например.
Спасибо
из блога https://www.softprayog.in/programming/interprocess-communication-using-posix-shared-memory-in-linux
должен быть способ, которым я могу поделиться файлом между процессами, используя общую память.