簡體   English   中英

輸出文件重定向(幾乎)在Linux中無法與我的C程序一起使用

[英]output file redirection (almost) never works with my c program in linux

如果鍵入myprogram> file,則文件大小為0,但工作一次除外。 相同的程序,在工作和不工作之間沒有變化。 沒有重定向,它就可以打印到終端了。 幾乎所有的聯機幫助都假定您需要重定向標准錯誤,但實際情況並非如此。

該程序是多線程的,讀取USB端口並將其寫到藍牙端口。 沒有鍵盤輸入,也沒有退出,它只是運行。 我用ctrl-c停止了它。 這是無頭Linux Intel Edison上的嵌入式代碼。

我認為我需要在代碼中做一些事情以允許重定向。 我可能應該知道這很簡單,但我不知道。 我將不勝感激。

當您重定向到文件時,libc將自動緩沖您的數據。

由於您殺死了腳本而不是正常退出,因此請在腳本將緩沖區寫出之前停止該進程。

您可以使用fflush(stdout); 隨時寫出(也稱為刷新)當前緩沖區。

您可以使用setvbuf(stdout, NULL, _IONBF, 0); 一起禁用stdout緩沖。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM