1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-07-27 01:37:36 +00:00

LibCore: Return ErrorOr<pid_t> and support arguments in Process::spawn

This makes the wrapper more like the rest in LibCore, and also
removes the annoying limitation of not supporting arguments.

There are three overloads one for String, char const *, and StringView
argument lists. As long as there are <= 10 arguments the argv list
will be allocated inline, otherwise on the heap.
This commit is contained in:
MacDue 2022-05-10 00:24:15 +01:00 committed by Linus Groh
parent 0295d79339
commit 3fc0350caf
11 changed files with 77 additions and 28 deletions

View file

@ -1,5 +1,6 @@
/*
* Copyright (c) 2021, Andreas Kling <kling@serenityos.org>
* Copyright (c) 2022, MacDue <macdue@dueutil.tech>
*
* SPDX-License-Identifier: BSD-2-Clause
*/
@ -7,12 +8,15 @@
#pragma once
#include <AK/Forward.h>
#include <AK/Span.h>
namespace Core {
class Process {
public:
static pid_t spawn(StringView path);
static ErrorOr<pid_t> spawn(StringView path, Span<String const> arguments);
static ErrorOr<pid_t> spawn(StringView path, Span<StringView const> arguments);
static ErrorOr<pid_t> spawn(StringView path, Span<char const* const> arguments = {});
};
}