Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/59.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C 控制台输出未对齐_C_Linux_Bash_Embedded_Embedded Linux - Fatal编程技术网

C 控制台输出未对齐

C 控制台输出未对齐,c,linux,bash,embedded,embedded-linux,C,Linux,Bash,Embedded,Embedded Linux,我的嵌入式系统有一个后台程序,可以生成一些输出消息到控制台。 当它还没有完成时,登录程序启动,并向同一控制台提示登录字符串 我的问题是,当登录提示字符串出现时,后台程序生成的输出消息没有如下对齐: 预期产出应为: 不知道如何解决这个问题。。。 有人能帮忙吗 谢谢 将您的终端程序配置为autolinefeed,以便它在收到\n时在内部生成\r,将您的终端程序配置为autolinefeed,以便它在收到\n时在内部生成\r。为您的后台程序使用重定向 YourBackStuff.sh >/

我的嵌入式系统有一个后台程序,可以生成一些输出消息到控制台。 当它还没有完成时,登录程序启动,并向同一控制台提示登录字符串

我的问题是,当登录提示字符串出现时,后台程序生成的输出消息没有如下对齐:


预期产出应为:



不知道如何解决这个问题。。。 有人能帮忙吗


谢谢

将您的终端程序配置为autolinefeed,以便它在收到
\n
时在内部生成
\r
,将您的终端程序配置为autolinefeed,以便它在收到
\n
时在内部生成
\r
。为您的后台程序使用重定向

YourBackStuff.sh >/tmp/back_out.1 2>/tmp/Back_out.2 &
或者刷新屏幕

请注意,只有外观被修改,当前应用程序/外壳的实际输出(因此不是背景输出)是正确的,只有终端显示您收到的所有信息。所以

YourFrontApp.sh | tee /tmp/front_out.1
cat /tmp/front_out.1

将生成正确的显示(后台进程停止时)

为后台程序使用重定向

YourBackStuff.sh >/tmp/back_out.1 2>/tmp/Back_out.2 &
或者刷新屏幕

请注意,只有外观被修改,当前应用程序/外壳的实际输出(因此不是背景输出)是正确的,只有终端显示您收到的所有信息。所以

YourFrontApp.sh | tee /tmp/front_out.1
cat /tmp/front_out.1

将生成一个正确的显示(后台进程停止时)

在我看来,您的消息在每行末尾都有一个新行字符(由C中的
\n
表示)。这要求终端提供一条新的线路,并及时提供。它不请求回车(即“返回左侧边缘”)。这将在C中表示为
\r


要修复此问题,您需要将终端应用程序设置为将
\n
解释为
\n\r
-它将设置为“将换行符视为换行符+CR”或类似的设置。

在我看来,您的消息在每行末尾都带有新行字符(由C中的
\n
表示)。这要求终端提供一条新的线路,并及时提供。它不请求回车(即“返回左侧边缘”)。这将在C中表示为
\r

要修复它,您需要将终端应用程序设置为将
\n
解释为
\n\r
——它将具有“将换行符视为换行符+CR”或类似设置