]>
git.proxmox.com Git - wasi-libc.git/blob - libc-bottom-half/cloudlibc/src/libc/unistd/pwrite.c
56672e5b572d1d3823cbf52100d6ac9b9904c2a6
1 // Copyright (c) 2015-2016 Nuxi, https://nuxi.nl/
3 // SPDX-License-Identifier: BSD-2-Clause
9 ssize_t
pwrite(int fildes
, const void *buf
, size_t nbyte
, off_t offset
) {
14 __wasi_ciovec_t iov
= {.buf
= buf
, .buf_len
= nbyte
};
16 __wasi_errno_t error
=
17 __wasi_fd_pwrite(fildes
, &iov
, 1, offset
, &bytes_written
);
20 #ifdef __wasilibc_unmodified_upstream
21 if (error
== ENOTCAPABLE
&& __wasi_fd_stat_get(fildes
, &fds
) == 0) {
23 if (error
== ENOTCAPABLE
&& __wasi_fd_fdstat_get(fildes
, &fds
) == 0) {
25 // Determine why we got ENOTCAPABLE.
26 #ifdef __wasilibc_unmodified_upstream // generated constant names
27 if ((fds
.fs_rights_base
& __WASI_RIGHT_FD_WRITE
) == 0)
29 if ((fds
.fs_rights_base
& __WASI_RIGHTS_FD_WRITE
) == 0)