我有 unsigned char 缓冲区,其中有数据,我需要将它复制到 jbyteArray 以便我可以以字节数组格式返回它。这是我的一段代码 C 代码:
JNIEXPORT jbyteArray JNICALL Java_hello1_recieve(JNIEnv *env, jobject object)
{
ssize_t bytes_read;
/* receive the message */
bytes_read = mq_receive(mq,buff, MAX_SIZE, NULL);
jbyteArray b[bytes_read];
CHECK(bytes_read >= 0);
buff[bytes_read] = '\0';
int i=0;
while(buff[i]!='\0')
{
b[i]=buff[i];
printf("%c\n",b[i]);
i++;
}
/* cleanup */
CHECK((mqd_t)-1 != mq_close(mq));
CHECK((mqd_t)-1 != mq_unlink(QUEUE_NAME));
return b;
Run Code Online (Sandbox Code Playgroud)
}
这里 CHECK(x) 是:
do{
if (!(x))
{
fprintf(stderr, "%s:%d: ", __func__, __LINE__);
perror(#x);
exit(-1);
}
} while (0)
Run Code Online (Sandbox Code Playgroud)
而java端的代码是:
public class hello1 {
public …Run Code Online (Sandbox Code Playgroud)