dostałem trochę kodu, który drukuje na standardowe wyjście, w pseudo kod wyglądajak sprawdzić, czy stdout jest zamknięty
int main(){
//allocate data
while(conditional){
char *string = makedata();
fprintf(stdout,"%s",string);
}
//cleanup
}
Działa to dobrze, jeśli warunkowa jest przełączana do zera, ale jeśli rura I wyjście takie jak:
./a.out |head -n10 >dumped
Następnie kod nigdy nie dociera do części czyszczenia, nie rozumiem, jak sprawdzić, czy standardowe wyjście zostanie zamknięte.
Dzięki
Co z 'feof()' i 'ferror()'? –