gpt4 book ai didi

java - JNI 标准输出未打印到控制台

转载 作者:行者123 更新时间:2023-11-30 17:15:02 25 4
gpt4 key购买 nike

我使用 JNI 因为我需要一些 C 库。我的问题是并非所有内容都打印到标准输出。我知道我能做到

puts("test");
fflush(stdout);

我自己。但我的问题是 c 库有一个调试功能,它打印到标准输出,因此在控制台中不可见。我该如何解决这个问题?

最佳答案

您无法写入标准输出,因为 JNI 从 Java 代码中运行 native 代码,并且不附加到标准输出。您可以使用以下函数直接写入控制台设备。

void console_printf(const char *fmt,...)
{
int fd = open("/dev/console", O_WRONLY);
char buffer[1000];
if (fd < 0)
return;

va_list ap;
va_start(ap, fmt);
vsprintf(buffer, fmt, ap);
va_end(ap);

write(fd, buffer, strlen(buffer));
close(fd);
}

关于java - JNI 标准输出未打印到控制台,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30069005/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com