2015-07-26 1 views
1
#include <iostream> 
#include <fstream> 

using namespace std; 

#define BRIGHTNESS_FILE "/sys/class/backlight/radeon_b10/brightness" 

int main() 
{ 
    ifstream brightness_file("BRIGHTNESS_FILE"); 
    int a; 
    brightness_file >> a; 
    cout << a; 
} 

Я проверил путь и разрешения для файла. Я в недоумении, почему он не будет читать.Почему бы не открыть этот файл?

EDIT

Я установил все определить вещь с BRIGHTNESS_FILE, но он все равно не будет открыт. Я проверил путь несколько раз, чтобы быть в безопасности.

+0

Является ли это '/ sys/class/backlight/radeon_b10/brightness' абсолютным путем файла? – Steephen

+2

Вы пытаетесь открыть '' BRIGHTNESS_FILE ''или' '/ sys/class/backlight/radeon_b10/bright" '? – Cornstalks

+0

Пожалуйста, не редактируйте сообщение с помощью решения. Ответы для этого. Откат снова. – 0x499602D2

ответ

5

Вы определяете BRIGHTNESS_FILE в качестве постоянного строкового литерала:

#define BRIGHTNESS_FILE "/sys/class/backlight/radeon_b10/brightness" 

Но не использовать его на всех:

ifstream brightness_file("BRIGHTNESS_FILE"); 

"BRIGHTNESS_FILE" является также строковым - это не имеет ничего делать с вашим макросом. Поэтому его содержимое не будет заменено препроцессором.

Что вам нужно:

ifstream brightness_file(BRIGHTNESS_FILE); 

Теперь BRIGHTNESS_FILE будет изменено на «/ SYS/класс/подсветка/radeon_b10/яркость» и ваш файл правильно открыт (если она существует и доступна, из курс).

5

Предполагаю, что у вас нет файла с именем "BRIGHTNESS_FILE". Потому что это имя файла, которое вы пытаетесь открыть. Удалите кавычки, чтобы использовать вашу макроопределяемую строку.

ifstream brightness_file(BRIGHTNESS_FILE); 
+2

Я чувствую себя очень глупо. – Maurice

 Смежные вопросы

  • Нет связанных вопросов^_^