gpt4 book ai didi

swift - 如何用不同的脚本进程替换当前的 Swift 脚本进程

转载 作者:可可西里 更新时间:2023-11-01 01:27:14 28 4
gpt4 key购买 nike

当使用 Ruby 时,以下将终止当前的 ruby​​ 脚本并用 ssh 实例替换该进程:

exec "ssh host -p 1234 -v"

这在 Swift 中可行吗?

最佳答案

execv以及 BSD 库中的相关函数可以从 Swift 调用(除了那些有变量的参数列表)。唯一的“挑战”是创建一个

UnsafePointer<UnsafeMutablePointer<Int8>?>

可以作为参数列表传递。一个简单的例子:

import Foundation

let args = ["ls", "-l", "/Library"]

// Array of UnsafeMutablePointer<Int8>
let cargs = args.map { strdup($0) } + [nil]

execv("/bin/ls", cargs)

fatalError("exec failed")

此处用于将 Swift 字符串传递给C 函数 strdup() 需要一个 const char *,并且编译器创建一个临时的 UTF-8 表示(参见 String value to UnsafePointer<UInt8> function parameter behavior ).

关于swift - 如何用不同的脚本进程替换当前的 Swift 脚本进程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40875935/

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