Closed Userzxcvbvnm closed 4 months ago
Similar to https://github.com/bytecodealliance/wasm-micro-runtime/issues/3565, O_DSYNC
is not part of the file status flags that can be modified using fcntl
. You can only set its value when first set it with open
Refer to the manual of syscall open
and fcntl
:
In open
In addition, zero or more file creation flags and file status
flags can be bitwise ORed in flags. The file creation flags are
O_CLOEXEC, O_CREAT, O_DIRECTORY, O_EXCL, O_NOCTTY, O_NOFOLLOW,
O_TMPFILE, and O_TRUNC. The file status flags are all of the
remaining flags listed below. The distinction between these two
groups of flags is that the file creation flags affect the
semantics of the open operation itself, while the file status
flags affect the semantics of subsequent I/O operations. **The
file status flags can be retrieved and (in some cases) modified**;
see [fcntl(2)](https://man7.org/linux/man-pages/man2/fcntl.2.html) for details.
In fcntl
F_SETFL (int)
Set the file status flags to the value specified by arg.
File access mode (O_RDONLY, O_WRONLY, O_RDWR) and file
creation flags (i.e., O_CREAT, O_EXCL, O_NOCTTY, O_TRUNC)
in arg are ignored. On Linux, this operation can change
only the O_APPEND, O_ASYNC, O_DIRECT, O_NOATIME, and
O_NONBLOCK flags. It is not possible to change the
O_DSYNC and O_SYNC flags; see BUGS, below.
Thanks for your reply!
Subject of the issue
wamr print "Setting flags succeed!" but does not print "Access mode: Data Synchronization Write" And the same with setting O_SYNC I'm not sure whether this is a bug.
Test case
The test case is:
Your environment
Ubuntu 20.04 x86_64 WAMR 1.3.2 and WAMR 1.2.3
Steps to reproduce
(1)compile to wasm:./wasi-sdk-21.0/bin/clang --target=wasm32-unkown-wasi --sysroot=./wasi-sdk-21.0/share/wasi-sysroot test.c -o test.wasm
(2)Running wasm: (Before run the Wasm file, file subdir_1/subdir_4/subfile_3 exists.) iwasm --dir=. test.wasm
Expected behavior
prints:
Actual behavior
WAMR prints:
wamr print "Setting flags succeed!" but does not print "Access mode: Data Synchronization Write"