[libc-commits] [libc] [libc][POSIX] implement fseeko, ftello (PR #86928)

Nick Desaulniers via libc-commits libc-commits at lists.llvm.org
Fri Mar 29 12:22:56 PDT 2024


================
@@ -0,0 +1,26 @@
+//===-- Implementation of fseeko ------------------------------------------===//
+//
+// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
+// See https://llvm.org/LICENSE.txt for license information.
+// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
+//
+//===----------------------------------------------------------------------===//
+
+#include "src/stdio/fseeko.h"
+#include "src/__support/File/file.h"
+
+#include "src/errno/libc_errno.h"
+
+namespace LIBC_NAMESPACE {
+
+LLVM_LIBC_FUNCTION(int, fseeko, (::FILE * stream, off_t offset, int whence)) {
+  auto result =
+      reinterpret_cast<LIBC_NAMESPACE::File *>(stream)->seek(offset, whence);
+  if (!result.has_value()) {
+    libc_errno = result.error();
+    return -1;
+  }
+  return 0;
----------------
nickdesaulniers wrote:

d'oh! You're right. I guess pulling out `result` into its own statement would do the trick; at that point we're just inverting the conditional.

https://github.com/llvm/llvm-project/pull/86928


More information about the libc-commits mailing list