gpt4 book ai didi

带有 Core_unix.exec 的 OCaml Core_unix.fork 永远不会返回

转载 作者:行者123 更新时间:2023-12-04 19:49:13 24 4
gpt4 key购买 nike

由于子进程返回 Core_kernel.Std.never_returns,我在以下列方式执行 fork 时遇到问题并且 parent 正在尝试返回 () .

我收到错误 This expression has type unit but an expression was expected of type Core_kernel.Std.never_returns = Core_kernel.Nothing0.t .似乎无法通过 Core.Std 找到正确的方法来执行此操作.

open Core.Std
open Unix

let () =
let prog = "ls" in
let args = ["ls"; "-l"] in
match Unix.fork () with
| `In_the_child ->
Unix.exec ~prog:prog ~args:args ();
| `In_the_parent _ ->
(* continue on with the program *)

最佳答案

never_returns type 专门设计用于与 never_returns 一起食用功能。这是要求程序员在代码中明确说明,他理解表达式不会终止。这是一个工作示例:

let () =
let prog = "ls" in
let args = ["ls"; "-l"] in
match Unix.fork () with
| `In_the_child ->
Unix.exec ~prog ~args () |>
never_returns
| `In_the_parent _ -> ()

关于带有 Core_unix.exec 的 OCaml Core_unix.fork 永远不会返回,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34948113/

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