diff --git a/Userland/Utilities/CMakeLists.txt b/Userland/Utilities/CMakeLists.txt index 78376434b3..c0708f289a 100644 --- a/Userland/Utilities/CMakeLists.txt +++ b/Userland/Utilities/CMakeLists.txt @@ -162,6 +162,7 @@ target_link_libraries(profile LibMain) target_link_libraries(ps LibMain) target_link_libraries(pwd LibMain) target_link_libraries(realpath LibMain) +target_link_libraries(reboot LibMain) target_link_libraries(rev LibMain) target_link_libraries(rm LibMain) target_link_libraries(rmdir LibMain) diff --git a/Userland/Utilities/reboot.cpp b/Userland/Utilities/reboot.cpp index f564c199a5..c6344e369c 100644 --- a/Userland/Utilities/reboot.cpp +++ b/Userland/Utilities/reboot.cpp @@ -5,21 +5,16 @@ * SPDX-License-Identifier: BSD-2-Clause */ -#include -#include -#include +#include +#include -int main(int, char**) +ErrorOr serenity_main(Main::Arguments) { - int power_state_switch_node = open("/sys/firmware/power_state", O_WRONLY); - if (power_state_switch_node < 0) { - perror("open"); - return 1; - } - const char* value = "1"; - if (write(power_state_switch_node, value, 1) < 0) { - perror("write"); - return 1; - } + auto file = TRY(Core::Stream::File::open("/sys/firmware/power_state", Core::Stream::OpenMode::Write)); + + const String file_contents = "1"; + TRY(file->write(file_contents.bytes())); + file->close(); + return 0; }