diff --git a/mirai-core-utils/src/unixMain/kotlin/MiraiFileImpl.kt b/mirai-core-utils/src/unixMain/kotlin/MiraiFileImpl.kt
index 7a9a62050..8fdbebe64 100644
--- a/mirai-core-utils/src/unixMain/kotlin/MiraiFileImpl.kt
+++ b/mirai-core-utils/src/unixMain/kotlin/MiraiFileImpl.kt
@@ -154,7 +154,7 @@ internal actual class MiraiFileImpl actual constructor(
     }
 
     override fun input(): Input {
-        val handle = fopen(absolutePath, "r")
+        val handle = fopen(absolutePath, "rb")
             ?: throw IOException(
                 "Failed to open file '$absolutePath'",
                 PosixException.forErrno(posixFunctionName = "fopen()")
@@ -163,7 +163,7 @@ internal actual class MiraiFileImpl actual constructor(
     }
 
     override fun output(): Output {
-        val handle = fopen(absolutePath, "w")
+        val handle = fopen(absolutePath, "wb")
             ?: throw IOException(
                 "Failed to open file '$absolutePath'",
                 PosixException.forErrno(posixFunctionName = "fopen()")