C чтение (из стандартного ввода) останавливается на 0x1a символ

в настоящее время яРеализация преобразования Берроуза-Уилера (и обратного преобразования) для необработанных данных (например, JPG и т. д.). При тестировании на обычных данных, таких как текстовые файлы, никаких проблем не возникает. Но когда дело доходит до чтения файлов JPG, например. останавливается чтение символа 0x1a, также известного как замещающий символ. Я'искал в интернете решения, которые нея не могу получить зависимый от ОС код, но без результатов ... Я думал читать в стандартном режиме в двоичном режиме, но это не такЯ думаю, это довольно легко. Есть ли простой способ решить эту проблему?

код:

buffer = (unsigned char*) calloc(block_size+1,sizeof(unsigned char));
length = fread((unsigned char*) buffer, 1, block_size, stdin);
if(length == 0){
    // file is empty
}else{
    b_length = length;
    while(length == b_length){
        buffer[block_size] = '\0';
        encodeBlock(buffer,length);
        length = fread((unsigned char*) buffer, 1, block_size, stdin);      
    }
    if(length != 0){            
        buffer[length] = '\0';
        encodeBlock(buffer,length);
    }
}
free(buffer);

Ответы на вопрос(5)

Ваш ответ на вопрос