[英]Why does Ubuntu terminal display tab characters printed in a loop differently?
[英]Single characters are not printed on the terminal
我有3個不同的進程,所有進程都使用printf
打印出單個字符。 但是我在終端中看不到它們。 當我添加換行符printf("\\n H")
,每個字符都在換行符上,我可以看到它們。 如果沒有換行符,為什么不起作用?
它是沖洗的問題。 如果在每個printf
之后刷新緩沖區,則應使輸出更接近所需的輸出。 要刷新標准輸出,只需執行fflush( stdout )
。
C標准為輸出流定義了3種緩沖類型:
可以通過setvbuf(3)
和setbuf(3)
函數更改輸出流的緩沖類型。
C標准要求stderr
在啟動時不要完全緩沖(通常在許多實現中都沒有緩沖,以便盡快發現錯誤)。 僅當可以確定不引用終端時, stdout
才被完全緩沖(當引用終端時,許多實現將其初始化為行緩沖,這就是您所看到的)。
使用'write(1,&c,1)'系統調用,或
fprintf(stderr,'%c', c);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.