Набор демонов Linux / proc /

Однажды я написал простой демон на bash — также устанавливает значения в / proc / *. Например,

echo 50 > /sys/class/backlight/acpi_video0/brightness

Я хочу переписать в C ++ и поделиться — но как использовать / proc / * в C ++? как клиент

1

Решение

Помните: в Unix все является файлом (ну, конечно, почти все).

Ваш текущий код оболочки фактически означает: напишите значение 50 (echo 50) в файл (redirection operator >) какое имя следует (/sys/class/backlight/acpi_video0/brightness).


В C ++ просто откройте /sys/class/backlight/acpi_video0/brightness в виде файла и чтения / записи в него, используя любой метод, который вы предпочитаете: C ++ fstream, C fopen/fread/fwrite

Пример с fstream (а именно ofstream так как мы только пишем к нему):

std::ofstream file("/sys/class/backlight/acpi_video0/brightness");
if (!file.is_open())
throw std::runtime_error("Could not open the file");
file << 50;
file.close();
3

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

Пример кода:

int val = 50;

FILE *f = fopen("/sys/class/backlight/acpi_video0/brightness", "w");
if (!f)
{
fprintf(stderr, "Huh, couldn't open /sys/class ... ");
exit(1);
}
fprintf(f, "%d", val);
fclose(f);
2

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