在 C 中读取 read() 读取空字符



我已经编写了从USB端口读取的程序(没有连接到任何东西(。从java我传递int文件描述符和字节数组,在jni中,我正在将字节数组转换为char*并使用read((。

jbyte *bufferPtr2 = (*env)->GetByteArrayElements(env, buf, NULL);  
unsigned char* d_data2 = (unsigned char*)bufferPtr2;    
n = read(fd, d_data2, lengthOfArray); 

执行后,n=1 但d_data2为空。这是为什么呢?read(( 是否将空字符读取为数据?

根据 POSIX 文档read()

read()函数应尝试从与打开的文件描述符关联的文件中读取nbyte字节,fildes,读取到buf指向的缓冲区中。

读取的字节的实际值无关紧要。

所以是的,read()将读取NUL字节。

最新更新