#include "pltbuild.h" jint throwIOException( JNIEnv *env, char *message) { jclass exClass; char *className = "java/io/IOException"; exClass = (*env)->FindClass(env, className); return (*env)->ThrowNew(env, exClass, message); } JNIEXPORT void JNICALL Java_moe_rosa_planterette_jni_GoFile_write__ILnet_java_String_2(JNIEnv *env, jobject obj, jint fd, jstring str) { char *s = (*env)->GetStringUTFChars(env, str, 0); size_t sz = (*env)->GetStringUTFLength(env, str); uintptr_t *errno_p = NULL; char **err_str_p = NULL; planterette_write(fd, s, sz, errno_p, err_str_p); if(errno_p || *err_str_p ) { throwIOException(env, **err_str_p ? *err_str_p : strerror(*errno_p)); } (*env)->ReleaseStringUTFChars(env, str, s); free(err_str_p); }