https://kotlinlang.org logo
Title
m

madhead

12/26/2017, 10:51 PM
How do one print to the
stderr
in K/N?
o

olonho

12/27/2017, 8:21 AM
import platform.posix.*

fun main(args: Array<String>) {
   fprintf(stderr, "Hi\n")
}
m

madhead

12/27/2017, 9:56 AM
Thanks! Any way to do that in platform independend way like
print
(e.g.
printerr
)?
o

olonho

12/27/2017, 10:02 AM
It is relatively platform-independent (will work on Linux mac and Windows)
f

fitzoh

12/27/2017, 8:20 PM
How about the other kind of platform-independent (jvm/js/native)?
o

olonho

12/27/2017, 8:42 PM
not sure what would it mean on JS for example, and in general it likely shall be something in target dependent portability layer
g

gildor

12/27/2017, 11:33 PM
On JS it will be
console.error()
,
System.err
on JVM
o

olonho

12/28/2017, 6:09 AM
Generally K/N is not trying to abstract out platform facilities, unlike Java, so we not planning to provide portable methods for doing everything in stock libraries, although nothing prevents development of abstraction layers like that externally.
j

jeancharles-roger

08/23/2018, 12:55 PM
Hi, thanks for the tip. I just had to change
stderr
to
__stderrp
(did take me a while 🙂 )
o

olonho

08/23/2018, 1:08 PM
maybe makes sense to contribute into .def file for your platform with wrapper making
stderr
available under expected name, see similar logic for zlib: https://github.com/JetBrains/kotlin-native/blob/0fed84a2cdbf6685b54b5059dc03853b954b9456/platformLibs/src/platform/osx/zlib.def#L31