sim/win/hostfs: set O_BINARY for windows hostfs as default

Since the initial default setting in MSVC is text mode ( O_TEXT ):

https://learn.microsoft.com/en-us/cpp/c-runtime-library/text-and-binary-mode-file-i-o?view=msvc-170

In order to unify the translation behavior with unix,
1. set O_BINARY for hostfs as default
2. enable default text mode if the application specifies flag O_TEXT

Signed-off-by: chao an <anchao@xiaomi.com>
This commit is contained in:
chao an 2023-03-21 15:21:41 +08:00 committed by Xiang Xiao
parent 2188c0f9a8
commit 899be58905
1 changed files with 16 additions and 0 deletions

View File

@ -120,6 +120,22 @@ int host_open(const char *pathname, int flags, nuttx_mode_t mode)
mapflags |= O_TRUNC;
}
/* Since the initial default setting in MSVC is text mode ( O_TEXT ):
*
* https://learn.microsoft.com/en-us/cpp/c-runtime-library/ \
* text-and-binary-mode-file-i-o?view=msvc-170
*
* In order to unify the translation behavior with unix,
* 1. set O_BINARY for hostfs as default
* 2. enable default text mode if the application specifies flag O_TEXT
*
*/
if ((flags & NUTTX_O_TEXT) == 0)
{
mapflags |= O_BINARY;
}
ret = _open(pathname, mapflags, mode);
if (ret == -1)
{