Страница 1 из 1

С++ чтение файла который меняется другим потоком

Добавлено: 2019.07.14, 19:30
Arnowt
Нужно читать температуру процессора, делаю примерно так:

Код: Выделить всё

        for (int i = 1; i <= 5; i++) {
            ifstream file("/sys/class/hwmon/hwmon0/temp" + to_string(i) + "_input");
            if (file) {
                file >> tmp;
                file.close();
                temp = tmp > temp ? tmp : temp;
            }
        }
Оно работает, однако этот блок нужно выполнять достаточно часто и хотелось бы убрать постоянные открытия и закрытия файлов.
Но проблема в том, если не переоткрывать файлы, что реальное чтение происходит только в первый раз(видимо буфер), а дальше проходит загрузка одних и тех же циферок. Чет ничего нагуглить не удалось.
Кто-то сталкивался и как решали?

Re: С++ чтение файла который меняется другим потоком

Добавлено: 2019.07.14, 20:44
Arnowt
сам себе отвечу )
нужно смещать указатель в начало

Код: Выделить всё

file[i].seekg(0, ios::beg);
Сбило столку что вместо пустой строки, в переменную приходило старое значение.