栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 系统运维 > 运维 > Linux

Linux和Windows的换行兼容问题

Linux 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Linux和Windows的换行兼容问题

前言

平时我们使用的是Windows系统的PC电脑,但是嵌入式开发却是用的Linux系统,一些细小的差异会导致在两个系统之间切换时遇到问题,换行符就是常见的一个容易引起错误的细节。
比如:
1.在Windows中编写的文本,放到Linux下去执行,就有可能因为换行符报错;
2.嵌入式设备的串口打印,嵌入式设备用的是Linux系统,而串口监视软件是在Windows系统里运行,有可能串口打印的换行出现只换行不回车的情况;
补充:一般我们说的换行指的是光标换到下一行并且在行首,实际这是两个动作:换行和回车;换行是把光标移到下一行,回车是把光标移到行首。

Linux和Windows中换行的区别

换行符是不可见字符,在Linux中换行符用’n’表示,在Windows中用’rn’表示,正是对换行符描述的差异导致一些奇怪的问题。

换行符导致的问题
// 从stdio输出一个字符c
void putchar(char c)
{
	// 碰到用户输出'n'时,实际输出"rn"
	// windows中按下回车键等效于"rn",在linux中按下回车键等效于'n'
	if (c == 'n')
	{
		uart_putc('r');	
	}
	
	//这是真正的串口输出函数
	uart_putc(c);
}

1.显示的错乱:嵌入式设备的串口打印是输出到运行在Windows上的串口监视软件,如果出现换行时只换行没有回车,那就是换行符差异导致的。我们在printf函数输出时在结尾加上’n’来换行,但是Windows的换行符却是用’rn’来表示,如果我们只输出’n’就会出现只换行不回车的现象。
解决办法:在输出到屏幕时,检测到输出’n’,就先输出’r’再输出’n’;或者把中断模拟软件的显示模式换为linux模式;
2.Windows中编写的文本在linux中执行错误:比如在Windows中用文本编辑器写的脚本,在linux中执行就可能因为换行符差异导致报错。
解决办法:更改文本的字符编码,或者在Linux环境中去编写;

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/297614.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号