0

我正在运行一个测试套件来测试 android 内核中的 IPC 相关功能。当我测试 msgrcv 系统调用时,它返回错误函数未实现。

那么在android-kernel中没有实现msgrcv()系统调用是否真的如此,如果是这样,为什么以及android内核中的哪个系统调用服务于msgrcv()系统调用的目的。

我得到了相关的声明,它说 System V IPC(包括消息队列)没有在 Bionic 上实现。但不确定这是什么意思。

更新:我能够在 android 内核中找到 msgrcv 的定义,但不确定为什么它返回错误函数未实现。

下面的代码片段:

SYSCALL_DEFINE5(msgrcv, int, msqid, struct msgbuf __user *, msgp, size_t, msgsz,
                long, msgtyp, int, msgflg)
{
        return do_msgrcv(msqid, msgp, msgsz, msgtyp, msgflg, do_msg_fill);
}

如果信息似乎不完整或含糊不清,请发表评论,不胜感激。

4

1 回答 1

1

System V IPC 可能在内核中可用,但系统调用接口未在 Bionic lib C 中实现。例如,/bionic/libc/arch-arm/syscalls/包含与 ARM 相关的所有系统调用实现。

于 2016-01-08T06:11:19.927 回答