Como continuar a saída no arquivo após o espaço em disco liberado?

0

Estou armazenando a saída de um programa da seguinte forma: ./programOutputtingTextToStandartOut > program.log

Se o disco ficar cheio, a saída deixará de ser gravada, mesmo que o programa continue sendo executado. Existe uma maneira de configurar isso para que, quando o espaço livre em disco aparecer, a gravação no arquivo seja restaurada automaticamente - sem precisar reiniciar o programa?

UPDATE

Adicionando um exemplo de programaOutputtingTextToStandartOut.

#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);
    }
}
    
por Jānis Elmeris 02.04.2013 / 12:52

1 resposta

0

Em vez de redirecionar a saída no nível do console, sugiro que: Use o próprio programa para gerenciar o log. Nesse caso, você pode verificar o espaço em disco em todas as operações do N. Se o espaço em disco for menor que o valor mínimo subscrito - pare o log. Uma vez que cai abaixo do limite inferior - recriar o arquivo de log e continuar o registro. Embora algum grau de código seja necessário, seria a melhor maneira possível de controlar o log.

    
por 02.04.2013 / 14:41

Tags