瀏覽代碼

LibCore: Add syscall wrapper for gethostname()

Kenneth Myhra 3 年之前
父節點
當前提交
951d8a06d8
共有 2 個文件被更改,包括 11 次插入0 次删除
  1. 10 0
      Userland/Libraries/LibCore/System.cpp
  2. 1 0
      Userland/Libraries/LibCore/System.h

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

@@ -1,5 +1,6 @@
 /*
 /*
  * Copyright (c) 2021, Andreas Kling <kling@serenityos.org>
  * Copyright (c) 2021, Andreas Kling <kling@serenityos.org>
+ * Copyright (c) 2021, Kenneth Myhra <kennethmyhra@gmail.com>
  *
  *
  * SPDX-License-Identifier: BSD-2-Clause
  * SPDX-License-Identifier: BSD-2-Clause
  */
  */
@@ -195,4 +196,13 @@ ErrorOr<String> ptsname(int fd)
     return String(name);
     return String(name);
 }
 }
 
 
+ErrorOr<String> gethostname()
+{
+    char hostname[256];
+    int rc = ::gethostname(hostname, sizeof(hostname));
+    if (rc < 0)
+        return Error::from_syscall("gethostname"sv, -errno);
+    return String(&hostname[0]);
+}
+
 }
 }

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

@@ -32,5 +32,6 @@ ErrorOr<ssize_t> write(int fd, void const* data, size_t data_size);
 ErrorOr<void> kill(pid_t, int signal);
 ErrorOr<void> kill(pid_t, int signal);
 ErrorOr<int> dup2(int source_fd, int destination_fd);
 ErrorOr<int> dup2(int source_fd, int destination_fd);
 ErrorOr<String> ptsname(int fd);
 ErrorOr<String> ptsname(int fd);
+ErrorOr<String> gethostname();
 
 
 }
 }