We read every piece of feedback, and take your input very seriously.
To see all available qualifiers, see our documentation.
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
wasmer fd_fdstat_get bug? Getting the access mode different from others.
(1)The test case is :
#include <stdio.h> #include <stdlib.h> #include <fcntl.h> #include <unistd.h> int get_fd(const char *filename, int flags) { int fd = open(filename, flags); if (fd == -1) { printf("Get file descriptor of file %s failed!\n", filename); return -1; } else { printf("Get file descriptor of file %s succeed!\n", filename); return fd; } } void closebyfd(int fd) { if (close(fd) == -1) { printf("Close the file %d by descriptor failed!\n", fd); } } void print_flags(int fd){ int flags1 = fcntl(fd, F_GETFL); int access_mode1 = flags1 & O_ACCMODE; if (access_mode1 == O_RDONLY) { printf("Access mode: Read Only\n"); } if (access_mode1 == O_WRONLY) { printf("Access mode: Write Only\n"); } if (access_mode1 == O_RDWR) { printf("Access mode: Read/Write\n"); } if (flags1 & O_TRUNC) { printf("Access mode: O_TRUNC\n"); } if (flags1 & O_APPEND) { printf("Access mode: O_APPEND\n"); } if (flags1 & O_CREAT) { printf("Access mode: O_CREAT\n"); } if (flags1 & O_EXCL) { printf("Access mode: O_EXCL\n"); } if (flags1 & O_NONBLOCK) { printf("Access mode: Non-blocking\n"); } if (flags1 & O_SYNC) { printf("Access mode: Synchronous Write\n"); } if (flags1 & O_DSYNC) { printf("Access mode: Data Synchronization Write\n"); } } int main() { int fd = get_fd("subdir_1/subdir_3/subdir_4/subfile_3", O_RDONLY); if (fd == -1) { return 1; } print_flags(fd); closebyfd(fd); return 0; }
(2)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
./wasi-sdk-21.0/bin/clang --target=wasm32-unkown-wasi --sysroot=./wasi-sdk-21.0/share/wasi-sysroot test.c -o test.wasm
(3)Running wasm: (Before run the Wasm file,subdir_1/subdir_3/subdir_4/subfile_3 exists.) wasmer run --dir=. test.wasm
wasmer run --dir=. test.wasm
print:
Get file descriptor of file subdir_1/subdir_3/subdir_4/subfile_3 succeed! Access mode: Read Only
wasmer print:
Get file descriptor of file subdir_1/subdir_3/subdir_4/subfile_3 succeed! Access mode: Read/Write
This is what wasmtime, WAMR and WasmEdge do.
Ubuntu 20.04 x86_64 wasmer-4.2.2
The text was updated successfully, but these errors were encountered:
maminrayej
No branches or pull requests
Describe the bug
wasmer fd_fdstat_get bug?
Getting the access mode different from others.
Steps to reproduce
(1)The test case is :
(2)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
(3)Running wasm:
(Before run the Wasm file,subdir_1/subdir_3/subdir_4/subfile_3 exists.)
wasmer run --dir=. test.wasm
Expected behavior
print:
Actual behavior
wasmer print:
This is what wasmtime, WAMR and WasmEdge do.
Additional context
Ubuntu 20.04
x86_64
wasmer-4.2.2
The text was updated successfully, but these errors were encountered: