热门标签 | HotTags
当前位置:  开发笔记 > 开发工具 > 正文

Kotlin本机执行命令并获取输出

如何解决《Kotlin本机执行命令并获取输出》经验,为你挑选了1个好方法。

我想知道kotlin本机中是否存在一种通过posix调用命令并接收其终端输出的方法。例如,我想使“ git diff”命令正常工作,而不必创建一个临时文件,将输出写入该文件,然后从该文件中读取。

在SO上,我仅找到需要ProcessBuilder的解决方案,由于它是Java库,因此在kotlin-native上不可用。



1> MG lolenstin..:

我找到了想要使用的一段代码,因此将其发布在这里,供将来的观众使用!

fun executeCommand(command: String): String{
    val fp: CPointer? = 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()
}


推荐阅读
author-avatar
遇遇yuyu
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有