寫乙個簡單的程式,比如這樣
#include
#include
int main()
return
0;}
編譯執行,當然沒有任何問題。然後這樣:
./a.out | grep num
卻沒有任何輸出!
被此問題困擾了幾分鐘之久(當然原問題沒有這麼簡單),後來發現是linux的輸出緩衝機制惹的禍。我們都知道輸出到stdout的時候每次有換行就會清空輸出緩衝區,但其實只有當stdout是終端的時候才是如此,當重定向到管道或檔案的時候都要等緩衝區滿才會真正輸出。預設的緩衝區大小是4096位元組,所以上面的命令在「假死「大約17分鐘後會給出輸出。
解決方法:每次printf後都fflush(stdout)
,或者提前用setvbuf
把stdout設定為line buffered或unbuffered,如
setvbuf(stdout, null, _ionbf, 0); // set stdout unbuffered
對於無法修改的程式,恐怕只能想一些奇技淫巧了。
視窗不見了
1 視窗不見了 雙螢幕下開啟過軟體,再回到單螢幕,程式啟動後,介面不見了。用win 左,右,可以恢復。2 谷歌的chrome公升級到v70後,谷歌輸入法出現了bug,候選欄不見了 暫時無解。公升級到谷歌v70.0.3538.77。bug已經解決。3 vs2017模板 參考 在以前版本的 visual...
administrator使用者不見了
如何找到 administrator 帳戶 首先用現在的使用者登入,開啟控制面板 效能與維護 管理工具 機算機管理 雙擊計算機管理,看到了嗎 administrator 帳戶在這裡,在雙擊 本地使用者和組 然後單擊 使用者 將右邊的 123 帳戶 即當前的使用者 停用或刪除 刪除當前帳戶時會有乙個警...
UltraEdit的檔案標籤不見了
這是ue的乙個bug,我一次不小心把file tabs給拖出來了,拖到視窗的外面就不見了,怎麼再讓他顯示出來?解決方案 研究了一下,找到了乙個方法找回失落的檔案標籤欄 高階 配置 工具欄 選單 定製 定製選單 彈出選單配置對話方塊,展開左側 選單 的 檢視 項,在這裡由 新建選單 子選單 建立乙個子...