我已经编写了从USB端口读取的程序(未连接任何东西)。从Java中我传递了int filedescriptor和字节数组,在jni中,我将字节数组转换为char *并使用了read()。
jbyte *bufferPtr2 = (*env)->GetByteArrayElements(env, buf, NULL);
unsigned char* d_data2 = (unsigned char*)bufferPtr2;
n = read(fd, d_data2, lengthOfArray);
Run Code Online (Sandbox Code Playgroud)
执行后,n = 1,但d_data2为空。为什么是这样?read()是否将空字符读取为数据?