diff options
-rw-r--r-- | lib/fs.c | 10 |
1 files changed, 5 insertions, 5 deletions
@@ -748,7 +748,7 @@ uc_fs_seek(uc_vm_t *vm, size_t nargs) uc_value_t *ofs = uc_fn_arg(0); uc_value_t *how = uc_fn_arg(1); int whence, res; - long offset; + off_t offset; FILE **fp = uc_fn_this("fs.file"); @@ -760,7 +760,7 @@ uc_fs_seek(uc_vm_t *vm, size_t nargs) else if (ucv_type(ofs) != UC_INTEGER) err_return(EINVAL); else - offset = (long)ucv_int64_get(ofs); + offset = (off_t)ucv_int64_get(ofs); if (!how) whence = 0; @@ -769,7 +769,7 @@ uc_fs_seek(uc_vm_t *vm, size_t nargs) else whence = (int)ucv_int64_get(how); - res = fseek(*fp, offset, whence); + res = fseeko(*fp, offset, whence); if (res < 0) err_return(errno); @@ -793,14 +793,14 @@ uc_fs_seek(uc_vm_t *vm, size_t nargs) static uc_value_t * uc_fs_tell(uc_vm_t *vm, size_t nargs) { - long offset; + off_t offset; FILE **fp = uc_fn_this("fs.file"); if (!fp || !*fp) err_return(EBADF); - offset = ftell(*fp); + offset = ftello(*fp); if (offset < 0) err_return(errno); |