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

Shourya Goel via libc-commits libc-commits at lists.llvm.org
Thu Mar 28 13:18:08 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;
----------------
Sh0g0-1758 wrote:

I don't think so as from the man page, fseek is meant to set the the file position indicator. Ie. any value that result might have would not be useful. 

>        The  fseek()  function  sets  the file position indicator for the stream pointed to by stream.  The new position, > measured in bytes, is obtained by
>        adding offset bytes to the position specified by whence.

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


More information about the libc-commits mailing list