致命错误:使用kotlin-native时,glibc检测到无效的stdio句柄

时间:2018-08-15 08:25:56

标签: kotlin glibc kotlin-native

我正在和kotlin-native一起玩,试图打开一个文件。该文件已打开并正确创建,但是,在打印到该文件时,出现错误“致命错误:glibc检测到无效的stdio句柄

以退出代码134(被信号6:SIGABRT中断)结束的过程”

我在这里做错了吗?还是这是Kotlin配置问题?相同的代码在C中确实有效

import kotlinx.cinterop.*
import platform.posix.*

fun main(args: Array<String>) {
    val home = getenv("HOME")?.toKString() ?: "NONE"
    val fopen: FILE = fopen("$home/checkinTime", "w")?.pointed ?: throw RuntimeException()
    val readValue: CValue<FILE> = fopen.readValue();
    fprintf(readValue,"String")
}

1 个答案:

答案 0 :(得分:0)

此代码可以完成这项工作:

import kotlinx.cinterop.*
import platform.posix.*

fun main(args: Array<String>) {
    val home = getenv("HOME")?.toKString() ?: "NONE"
    val f = fopen("$home/checkinTime", "w") ?: throw RuntimeException()
    fprintf(f, "String")
    fclose(f)
}