gpt4 book ai didi

terminal - Kotlin-native 执行命令并获取输出

转载 作者:行者123 更新时间:2023-12-02 07:17:37 26 4
gpt4 key购买 nike

我想知道在 kotlin native 中是否有办法通过 posix 调用命令并接收它的终端输出。例如,我想让“git diff”命令工作而不必创建临时文件,将输出写入其中,然后从该文件中读取。

在 SO 上,我只找到了需要 ProcessBuilder 的解决方案,这在 kotlin-native 上不可用,因为它是一个 Java 库。

最佳答案

我找到了一段我想使用的工作代码,所以我把它贴在这里供以后的观众使用!

fun executeCommand(command: String): String{
val fp: CPointer<FILE>? = popen(command, "r")
val buffer = ByteArray(4096)
val returnString = StringBuilder()

/* Open the command for reading. */
if (fp == NULL) {
printf("Failed to run command\n" )
exit(1)
}

/* Read the output a line at a time - output it. */
var scan = fgets(buffer.refTo(0), buffer.size, fp)
if(scan != null) {
while (scan != NULL) {
returnString.append(scan!!.toKString())
scan = fgets(buffer.refTo(0), buffer.size, fp)
}
}
/* close */
pclose(fp)
return returnString.trim().toString()
}

关于terminal - Kotlin-native 执行命令并获取输出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57123836/

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