2013-11-27 2 views
0

Я начал работу над реализацией базовой параллельной последовательной конвертации данных (MUX) на C или C++. В основном, эта программа берет данные из некоторых файлов и показывает их последовательно в одном файле.Параллельные данные для последовательного интерфейса в C/C++: Внедрение мультиплекса

Я начал с этого, я искал в Интернете, и я не нашел много информации.
Есть ли какая-нибудь библиотека, которую я могу использовать? Или любые предложения или руководства?
Если у вас есть информация, независимо от языка программирования, пожалуйста, поделитесь ею.

+0

Этот вопрос трудно понять/плохо сформирован. Не совсем ясно, что вы на самом деле пытаетесь сделать. Похоже, вы пытаетесь написать драйвер устройства из названия, но из вашего вопроса это звучит так, будто вы просто пытаетесь преобразовать шестнадцатеричное представление чисел в их двоичное представление. Что он? – OmnipotentEntity

+0

Извините за плохое образование, английский не мой родной язык. И да, я пытаюсь написать драйвер устройства. – Ita

+0

Вам нужна противоположная функциональность 'tee', которую обычно называют« воронкой »или чем-то подобным. –

ответ

0

Предполагая, что вы хотите, чтобы открыть много файлов и записать их содержимое в один файл, попробовать что-то вроде этого:

#include <iostream> 
#include <fstream> 

using std::ifstream; 
using std::ofstream; 
using std::cout; 
using std::cerr; 

int main(void) 
{ 
    // Open the files. 
    ifstream file_1("file_001.bin", ios::binary); 
    if (!file_1) 
    { 
    cerr << "Error opening first file.\n"; 
    return EXIT_FAILURE; 
    } 
    //... 
    ofstream serial_file("serial_result.bin", ios::binary); 
    if (!serial_file) 
    { 
    cerr << "Error opening serial result file.\n"; 
    return EXIT_FAILURE; 
    } 

    // Read from the files 
    unsigned char byte; 
    while (file_1.read(&byte, 1)) 
    { 
    // Write to serial file. 
    serial_file.write(&byte, 1); 
    // Read byte from next file 
    file_2.read(&byte, 1); 
    serial_file.write(&byte, 1); 
    // Etc. 
    } 
    return EXIT_SUCCESS; 
} 
+0

Предполагается, что оба файла могут быть прочитаны в обратном порядке. Это не будет работать, если один файл будет читать блоки, в то время как в другом файле есть готовые к чтению байты. Это также предполагает, что оба файла имеют одинаковый размер. Вам нужен более сложный алгоритм. –

+0

Это всего лишь фундамент. Это необходимо проверить для случаев, когда файлы имеют разные размеры, а также для упорядочения байтов. –