0
我運行在Linux中的可執行文件在終端像這樣的輸出:不能重定向系統()
./foo 1 2 3 >output.txt
結果沒有輸出到OUTPUT.TXT,即使該文件被創建,但做&>output.txt
而不是訣竅。所以我猜測./foo的響應被定義爲stderr?
但在繼續討論..我的目標是要調用C多次內./foo程序,但我不管理,以獲得輸出到文件時,我這樣做:
status=system("./foo 1 2 3 &>output.txt")
輸出只出現在Eclipse控制檯中,但該文件確實已創建,但仍爲空。 (我也試過>
只)
任何想法我做錯了什麼?
您需要提供有關正在使用的命令解釋器或shell的信息 - system()調用的工作方式因工作方式而異(這符合正在實現的system()的效果) 。然而,假設你使用的是unix系統,你最好使用'fork()'和'exec()'函數系列之一來執行你的程序。如果你這樣做,一個重定向輸出的方法是在http://stackoverflow.com/questions/2605130/redirecting-exec-output-to-a-buffer-or-file – Peter
這是一個程序沒有做我模仿一個LIDAR相機。它返回如下形式: 'LIDAR 最小值= 0.000000弧度,最大值= 2弧度' –
這實際上是無關緊要的。 'system()'通常啓動一個本地shell,然後執行你的程序。 – Peter