Witam,
Użycie w JNI freopen("log.txt", "a", stdout) czyli zamkniecie stdout-a powoduje że po wróceniu z natywnej metody
nie można nic wyświetlić na konsoli przez System.out. ale printf (wcześniej z stdout oczywiście zrobiłem dup by go odtworzyć) działa.
Żadne sztuczki jak wcześniejsze zapisywanie aktualnego PrintStream i późniejszym odtwarzaniu czy na poziomie c lub java nie pomagają.
W analizie problemu zatrzymałem się na java.langUNIXProcess.forkAndExec.
Dalej źródeł nie ma, jeszcze zostaje analiza źródeł Classpath ale tam od pewnego poziomu w dół jest inaczej niż w Sun-owej Javie.

Generalnie chodzi o to by funkcja wywoływana na poziomie c nie pisała mi na konsolę tylko do pliku.

Pozdro