write to fd
This commit is contained in:
26
cmd/plt-build/src/main/go/pltbuild.c
Normal file
26
cmd/plt-build/src/main/go/pltbuild.c
Normal file
@@ -0,0 +1,26 @@
|
||||
#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);
|
||||
}
|
||||
Reference in New Issue
Block a user