Общая функция fwrite

Я использую собственный клиент Google, которому требуется фоновый поток для управления операциями ввода-вывода. Сейчас я пишу fwrite, но у меня проблемы с передачей данных в функцию и проверкой данных.

здесь случай, ниже, как я хочу передать данные, конечно, я не ограничен char[] Я хочу, чтобы он работал для любого типа данных, пока fwrite принять этот тип

pp::VarDictionary fileOp;
pp::VarArray args;
char buffer[] = { 'x' , 'y' , 'z' };
args.Set(0, buffer); //name of buffer I want to pass
args.Set(1, 1); //size of elements
args.Set(2,sizeof(buffer));//the size of buffer
args.Set(3, outfile); //the output file
fileOp.Set("args", args);
fileOp.Set("cmd", "fwrite");
queue_file_.push(fileOp);

Для функции, которая будет обрабатывать операцию, это то, что у меня есть

int EncoderInstance::HandleFwrite(pp::VarArray params, std::string* error) {

if (params.GetLength() != 3) {
Logger::Log("Invalid number of arguments");
return 0;
}outfile = fwrite(params.Get(0), sizeof(char), sizeof(params.Get(0)), outfile);

if (!outfile) {

*error = "fopen returned a NULL FILE*";
return 0;
}

return 1;
}

Мои вопросы следующие

  1. Как я могу сделать проверку для всех входных данных, чтобы не возникало никаких исключений? За fopen Я проверил, есть ли у него два параметра и оба они являются строками filename а также mode за fwrite Я запутался что мне делать

  2. Каков наилучший способ передачи параметров без использования памяти? это видеокодер, поэтому я не хочу, чтобы проверка и запись занимали много времени.

  3. Нужно ли разыгрывать все входы или есть общий способ сделать это?

1

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]