9

所以这可能是一个愚蠢的问题,但我看不出我做错了什么。

我正在运行一个程序,该程序在调用时会产生输出./ar。输出如下所示:

-0.00781 0.02344 0.98828                                                        
-0.01172 0.02734 0.98828                                                        
-0.01562 0.02344 0.98047                                                        
-0.00781 0.02344 1.00000                                                        
-0.00391 0.02344 0.98438 

每秒写入一行新的输出。

当我像这样调用代码./ar > logctrl-c在几秒钟后使用终止程序时,文件log为空。

我在嵌入式系统上运行此代码。系统有一个可写分区,这是我正在运行的分区,并且我以 root 身份登录时具有写访问权限。

4

2 回答 2

1

原因是UNIX系统的懒惰写概念。

于 2013-05-23T13:08:00.993 回答
1

您确定您正在查看调用 ./ar 中的标准输出吗?这可能是标准错误。所以,尝试 ./ar >log 2>err 来拥有 2 个文件,一个用于 stdout,一个用于 stderr。

或使用 ./ar 2>&1 >log 为两个流获取一个文件。

于 2013-05-23T13:12:17.223 回答