我已經編寫了一個程序,它使用printf將消息發送到標準輸出,並且我無法將輸出重定向到一個文件(從bash運行)。在bash中重定向C程序輸出的問題
我已經試過:
./program argument >> program.out
./program argument > program.out
./program >> program.out argument
./program > program.out argument
在每種情況下,在文件被創建program.out但它仍然是空的。執行結束後,將文件的大小爲0。
如果我在執行程序時省略了重定向:
./program argument
然後,發送用printf到stdout的所有消息在終端被示出。
我有其他的C程序,我沒有問題重定向輸出這種方式。 它與程序本身有關嗎?參數傳遞? 應該在哪裏尋找問題?
關於C程序的一些細節:
- 它不會從標準
- 它採用BSD互聯網域套接字
- 它使用POSIX線程
- 它分配一個特殊處理函數讀什麼使用sigaction的SIGINT信號
- 它向stdout發送大量新行(對於那些你認爲我應該刷新的行)
一些代碼:
int main(int argc, char** argv)
{
printf("Execution started\n");
do
{
/* lots of printf here */
} while (1);
/* Code never reached */
pthread_exit(EXIT_SUCCESS);
}
是否不輸出重定向相同的程序產生任何輸出到屏幕上? – womble 2009-02-01 00:32:39
我編輯了這個問題來澄清。謝謝 – mmutilva 2009-02-01 00:40:36