Если open
возвращает -1
, то вам нужно проверить errno
, чтобы увидеть, почему это не удалось. Наиболее вероятная причина заключается в том, что вы не запускаете свою программу как root
или как пользователь в группе operator
.
Кроме того, вам не хватает второго (oflag
) параметра для функции open
.
Это довольно базовые знания. Чтение секторов диска напрямую - довольно сложная тема Вы, вероятно, не должны делать это на своем уровне знаний.