45
46 /**************************************************************
47 * static methods to store field ID's in initializers
48 */
49
50 JNIEXPORT void JNICALL
51 Java_java_io_FileInputStream_initIDs(JNIEnv *env, jclass fdClass) {
52 fis_fd = (*env)->GetFieldID(env, fdClass, "fd", "Ljava/io/FileDescriptor;");
53 }
54
55 /**************************************************************
56 * Input stream
57 */
58
59 JNIEXPORT void JNICALL
60 Java_java_io_FileInputStream_open(JNIEnv *env, jobject this, jstring path) {
61 fileOpen(env, this, path, fis_fd, O_RDONLY);
62 }
63
64 JNIEXPORT jint JNICALL
65 Java_java_io_FileInputStream_read(JNIEnv *env, jobject this) {
66 return readSingle(env, this, fis_fd);
67 }
68
69 JNIEXPORT jint JNICALL
70 Java_java_io_FileInputStream_readBytes(JNIEnv *env, jobject this,
71 jbyteArray bytes, jint off, jint len) {
72 return readBytes(env, this, bytes, off, len, fis_fd);
73 }
74
75 JNIEXPORT jlong JNICALL
76 Java_java_io_FileInputStream_skip(JNIEnv *env, jobject this, jlong toSkip) {
77 jlong cur = jlong_zero;
78 jlong end = jlong_zero;
79 FD fd = GET_FD(this, fis_fd);
80 if (fd == -1) {
81 JNU_ThrowIOException (env, "Stream Closed");
82 return 0;
83 }
84 if ((cur = IO_Lseek(fd, (jlong)0, (jint)SEEK_CUR)) == -1) {
85 JNU_ThrowIOExceptionWithLastError(env, "Seek error");
|
45
46 /**************************************************************
47 * static methods to store field ID's in initializers
48 */
49
50 JNIEXPORT void JNICALL
51 Java_java_io_FileInputStream_initIDs(JNIEnv *env, jclass fdClass) {
52 fis_fd = (*env)->GetFieldID(env, fdClass, "fd", "Ljava/io/FileDescriptor;");
53 }
54
55 /**************************************************************
56 * Input stream
57 */
58
59 JNIEXPORT void JNICALL
60 Java_java_io_FileInputStream_open(JNIEnv *env, jobject this, jstring path) {
61 fileOpen(env, this, path, fis_fd, O_RDONLY);
62 }
63
64 JNIEXPORT jint JNICALL
65 Java_java_io_FileInputStream_read0(JNIEnv *env, jobject this) {
66 return readSingle(env, this, fis_fd);
67 }
68
69 JNIEXPORT jint JNICALL
70 Java_java_io_FileInputStream_readBytes(JNIEnv *env, jobject this,
71 jbyteArray bytes, jint off, jint len) {
72 return readBytes(env, this, bytes, off, len, fis_fd);
73 }
74
75 JNIEXPORT jlong JNICALL
76 Java_java_io_FileInputStream_skip(JNIEnv *env, jobject this, jlong toSkip) {
77 jlong cur = jlong_zero;
78 jlong end = jlong_zero;
79 FD fd = GET_FD(this, fis_fd);
80 if (fd == -1) {
81 JNU_ThrowIOException (env, "Stream Closed");
82 return 0;
83 }
84 if ((cur = IO_Lseek(fd, (jlong)0, (jint)SEEK_CUR)) == -1) {
85 JNU_ThrowIOExceptionWithLastError(env, "Seek error");
|