فهرست منبع

LibCore: Add Core::System::getcwd() wrapper

Brian Gianforcaro 3 سال پیش
والد
کامیت
a62669ebcf
2فایلهای تغییر یافته به همراه12 افزوده شده و 0 حذف شده
  1. 11 0
      Userland/Libraries/LibCore/System.cpp
  2. 1 0
      Userland/Libraries/LibCore/System.h

+ 11 - 0
Userland/Libraries/LibCore/System.cpp

@@ -301,6 +301,17 @@ ErrorOr<String> gethostname()
     return String(&hostname[0]);
 }
 
+ErrorOr<String> getcwd()
+{
+    auto* cwd = ::getcwd(nullptr, 0);
+    if (!cwd)
+        return Error::from_syscall("getcwd"sv, -errno);
+
+    String string_cwd(cwd);
+    free(cwd);
+    return string_cwd;
+}
+
 ErrorOr<void> ioctl(int fd, unsigned request, ...)
 {
     va_list ap;

+ 1 - 0
Userland/Libraries/LibCore/System.h

@@ -53,6 +53,7 @@ ErrorOr<int> dup(int source_fd);
 ErrorOr<int> dup2(int source_fd, int destination_fd);
 ErrorOr<String> ptsname(int fd);
 ErrorOr<String> gethostname();
+ErrorOr<String> getcwd();
 ErrorOr<void> ioctl(int fd, unsigned request, ...);
 ErrorOr<struct termios> tcgetattr(int fd);
 ErrorOr<void> tcsetattr(int fd, int optional_actions, struct termios const&);