Я хочу переписать мой быстрый и грязный скрипт на bash, который я написал на bash в Qt. Строки, которые я хочу переписать:
gp1=$(cat /sys/fsl_otp/HW_OCOTP_GP1) || return $?
gp2=$(cat /sys/fsl_otp/HW_OCOTP_GP2) || return $?
p0="$(printf "%08x" "${gp1}" | cut -c 1-8)" || return $?
p1="$(printf "%08x" "${gp2}" | cut -c 7-8)" || return $?
Моя попытка gp1 в Qt:
uint64_t gp1_val = 0;
QFile gp1("/sys/fsl_otp/HW_OCOTP_GP1");
if(gp1.open(QFile::ReadOnly | QFile::Text)){
QByteArray gp1_bytes = QByteArray::fromHex(gp1.readAll());
gp1_val |= gp1_bytes[1] << 24;
gp1_val |= gp1_bytes[2] << 16;
gp1_val |= gp1_bytes[3] << 8;
gp1_val |= gp1_bytes[4];
}
gp1.close();
Но по сравнению с вариантом bash это похоже на забивание гвоздя рукояткой. Есть ли более элегантный / лучший способ сделать это?