Estou tendo problemas para depurar um programa segfaulting porque a saída logo antes do segfault é o que eu preciso, mas isso será perdido se eu estiver canalizando a saída para um arquivo. De acordo com esta resposta: https://unix.stackexchange.com/a/17339/22615 , isso ocorre porque o buffer de saída do programa é liberado imediatamente quando conectado a um terminal, mas apenas em determinados pontos quando conectado a um pipe. Algumas perguntas aqui:
Como um programa determina a que seu stdout está conectado?
Como o comando "script" produz o mesmo comportamento de quando o programa grava em um terminal?
Isso pode ser feito sem o comando script?