Прочитать первый элемент массива, а затем остальной массив из файлового дескриптора с помощью read()

Рейтинг: 1Ответов: 0Опубликовано: 18.02.2023

У меня есть функция serverMsgHandler, которая обрабатывает сообщения, приходящие с клиента. Приходит массив типа long с зашифрованными данными переменной длины. Первый элемент массива не зашифрован и представляет собой длину этого массива. Я пытаюсь прочитать из файлового дескриптора сначала длину массива, а затем остальной массив, однако сервер просто ожидает второго ввода сообщения.

char *serverMsgHandler(int fd, int *valread, int d, int n) {
    long size;
    read(fd, &size, sizeof(long));

    long encMsg[size];
    char *buffer = (char *) malloc(size);
    *valread = read(fd, encMsg, sizeof(long) * size - sizeof(long));
    decrypt(encMsg, size, buffer, d, n);

    return buffer;
}

Ответы

Ответов пока нет.