gpt4 book ai didi

ada - 如何启动一个进程并将其 PID 转换为整数或从整数转换?

转载 作者:行者123 更新时间:2023-12-01 22:58:14 25 4
gpt4 key购买 nike

我正在用 Ada 为 Linux 编写一个进程管理器。我正在使用 GNAT.OS_Lib 生成进程:

Pid := GNAT.OS_Lib.Non_Blocking_Spawn(
Program_Name => Program,
Args => Arguments
);

这让我返回 PID 作为 Process_Id,一个 OS_Lib 私有(private)类型。我希望能够将此 PID 存储在文件中作为整数,以与其他非 Ada 代码兼容,然后稍后从该文件重新加载它并在 Ada 中使用它终止进程,检查其状态等。

OS_Lib 提供了一个 Pid_To_Integer 函数,但没有反函数。

也许我需要一个不同的库?据我所知,当前没有 Ada POSIX 库。我应该自己写一个吗?我只需要支持三个 POSIX 调用。我愿意接受所有建议。

最佳答案

通过 RTS 寻找定义,g-os_lib.ads

with System.OS_Lib;

package GNAT.OS_Lib renames System.OS_Lib;

s-os_lib.ads 的底部我们找到

type Process_Id is new Integer;

所以我会选择 Ada.Unchecked_Conversion

关于ada - 如何启动一个进程并将其 PID 转换为整数或从整数转换?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/72498364/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com