jos*_*pos 5 c java java-native-interface stderr
我有一个用C开发的大程序,大多数函数有几
fprintf(stderr, "message")行.
但是现在我需要在Java程序中使用这些函数.所以,我实现了一个JNI接口,用于在Java和C之间进行通信.一切正常,Java和C可以进行通信,但现在我想在Java中捕获几个C的stderr ...我该怎么做?
干杯;)
当您调用 JNI 库时,您会将其加载到 JVM 进程中,因此库 STDOUT 和 STDERR 将是 JVM STDOUT 和 STDERR。所以问题是特定于操作系统的,更像是“进程如何读取自己的 STDOUT/STDERR?”
有几种可能性内部捕获/重定向标准输出?,但我认为并不容易的是仅读取库的 STDOUT 或 STDERR (我认为通过我给您提供的示例,一旦执行重定向,您就无法返回使用控制台进行输出(*))。
正如所评论的,答案将在很大程度上取决于您的操作系统。
(*)我可能是错的,我对C/系统编程不太精通。
| 归档时间: |
|
| 查看次数: |
2635 次 |
| 最近记录: |