Я сохраняю вывод программы следующим образом:./programOutputtingTextToStandartOut > program.log

Если диск заполнен, вывод прекращается, даже если программа продолжает работать. Есть ли способ настроить это так, чтобы при появлении свободного места на диске запись в файл автоматически восстанавливалась - без необходимости перезапуска программы?

ОБНОВИТЬ

Добавление примера программы OutputtingTextToStandartOut.

#include <string>
#include <iostream>
using namespace std;

int main(int argc, char* argv[])
{
    string textLine = "Some text";
    ostream* out = &cout;
    while (true) {
        (*out) << textLine << endl << flush;
        usleep(500000);
    }
}

1 ответ1

0

Вместо перенаправления вывода на уровне консоли я предлагаю использовать саму программу для управления журналом.Таким образом, в этом случае вы можете проверять дисковое пространство при каждой операции N. Если дисковое пространство меньше минимального подписанного значения - прекратите запись в журнал. Как только он упадет ниже нижнего порога - заново создайте файл журнала и продолжайте запись. Хотя требуется некоторая степень кода, это будет наилучшим из возможных способов управления журналированием.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .