Фон: мой оригинальный main ():
int main(int argc, char *argv[])
{
unsigned char output[16] = {0x00}; // copied from code
// .... (some steps to calculate output[i])
for (i = 0; i < 16; i++)
{
printf("%02X ", output[i]); // output[i] is an array of 16-byte hex values
}
return 0;
}
Исходная программа (например, calc.c) запускается из командной строки:
./calculate $(echo "this_is_input"|xxd -p)
Теперь я хочу изменить main () только как функцию вызова, например, с именем run (). И написать новую функцию main () для вызова функции run ().
Ввод ( эквивалент вышеупомянутой командной строки ) жестко закодирован в новом main (). Функция main () передаст входное значение функции run () (вместо использования вышеуказанной командной строки).
run(int argc, char *argv[])
{
....
return output[i];
}
затем run () возвращает тот же вывод [i] в main ()
int main()
{
input_char = **equivalent to $(echo "this_is_input"|xxd -p)** // how to define?
unsigned char returned_output[16] = {0x00};
returned_output = run(X, input_char);
print(returned_output);
}
Вопрос:
Как представить значение шестнадцатеричного дампа $ (echo "this_is_input" | xxd -p) ** в main ()?
Как изменить run () и main () для возврата массива char без знака в main ()?