master
 1#include <wasi/api.h>
 2#include <errno.h>
 3
 4off_t __wasilibc_tell(int fildes) {
 5    __wasi_filesize_t offset;
 6    __wasi_errno_t error = __wasi_fd_tell(fildes, &offset);
 7    if (error != 0) {
 8        // lseek returns ESPIPE on when called on a pipe, socket, or fifo,
 9        // which on WASI would translate into ENOTCAPABLE.
10        errno = error == ENOTCAPABLE ? ESPIPE : error;
11        return -1;
12    }
13    return offset;
14}