浏览代码

+ implemented Do_FileSize for the WASI target

git-svn-id: trunk@49530 -
nickysn 4 年之前
父节点
当前提交
17fac45ddc
共有 1 个文件被更改,包括 14 次插入1 次删除
  1. 14 1
      rtl/wasi/sysfile.inc

+ 14 - 1
rtl/wasi/sysfile.inc

@@ -133,8 +133,21 @@ begin
 end;
 
 function Do_FileSize(Handle:thandle):Int64;
+var
+  res: __wasi_errno_t;
+  buf: __wasi_filestat_t;
 begin
-  DebugWriteLn('Do_FileSize');
+  res:=__wasi_fd_filestat_get(Handle, @buf);
+  if res=__WASI_ERRNO_SUCCESS then
+  begin
+    InOutRes:=0;
+    Do_FileSize:=buf.size;
+  end
+  else
+  begin
+    InOutRes:=Errno2InoutRes(res);
+    Do_FileSize:=0;
+  end;
 end;
 
 procedure Do_Open(var f; p: pchar; flags: longint; pchangeable: boolean);