2. Tc2_System

2.12. 使用FB_FileWrite写文件后立即读取该文件发现数据内容不一致,每逢0x0A数据时会自动添加0x0D数据是什么原因?

现象描述:

写文件后立即读取该文件发现数据内容不一致,对比后发现为每逢0x0A数据时会自动添加0x0D数据。

如下例,原数据为“0x09 0x01 0x0A 0x01 0x0B 0x01”,写入文件后被变更为“0x09 0x01 0x0D 0x0A 0x01 0x0B


回答:

windows平台下使用文件操作函数时,如果碰到换行符(0x0A),编译器会自动转换为回车换行符(0x0D 0x0A),所以会导致写入文件的数据与原始数据不一致的情况。

如果要避免编译器对写入文件的数据内容产生影响那么在选择文件打开方式的时候需要注意,应该使用“FOPEN_MODEBINARY”模式打开。


附:回答信息参考于:https://infosys.beckhoff.com/content/1033/tcplclib_tc2_system/4566804235.html?id=6506883891513442529


2025.3.31 云龙 供稿