GNU/Linux >> Linux Esercitazione >  >> Linux

Perché stdbuf non ha alcun effetto su Python?

Per impostazione predefinita, print() di Python La funzione dirige il suo output a sys.stdout , la cui documentazione specifica quanto segue:

Quando interattivo, stdout e stderr i flussi sono bufferizzati di riga. In caso contrario, sono bufferizzati a blocchi come i normali file di testo. Puoi sovrascrivere questo valore con -u opzione della riga di comando.

Nota bene che quei documenti non lasciano spazio a influenze ambientali generali, come quella del stdbuf comando, sulla modalità buffering di sys.stdout :è senza buffer se -u è stata utilizzata l'opzione (o, equivalentemente, se la variabile d'ambiente PYTHONUNBUFFERED era impostato), altrimenti line-buffered se interattivo e block-buffered se non interattivo.

I programmi possono controllare il proprio buffering, come i documenti di stdbuf riconoscere:

NOTA:se COMMAND regola il buffering dei suoi flussi standard ('tee' fa per es.), ciò sovrascriverà le impostazioni corrispondenti modificate da 'stdbuf'. Inoltre alcuni filtri (come 'dd' e 'cat' ecc.) non usano stream per I/O, e quindi non sono influenzati dalle impostazioni 'stdbuf'.

Poiché Python specifica esplicitamente i dettagli del buffering, è ragionevole aspettarsi che in realtà gestisca affermativamente il suo buffering, ipotizzando così qualsiasi effetto di stdbuf .


Linux
  1. Perché l'utente mysql ha la shell bash in /etc/passwd?

  2. L'output da Ls ha nuove righe ma viene visualizzato su una singola riga. Come mai?

  3. Perché la pagina man di Apt-key sconsiglia di usare il suo comando Aggiungi?

  4. In `mentre Ifs=Leggi..`, perché Ifs non ha alcun effetto?

  5. Perché c'è un output di ping dopo che è stato terminato?

Python if..else Istruzione

Perché Sigint non viene propagato al processo figlio quando viene inviato al processo padre?

Linux – Suid non ha alcun effetto sulle directory con Linux?

Perché /dev/null è un file? Perché la sua funzione non è implementata come un semplice programma?

errore python AttributeError:l'oggetto 'module' non ha l'attributo 'sha1'

Perché il mio guest linux hyper-v non mostra il suo indirizzo IP in hyper-v manager