0
我正在運行一個測試套件來測試android內核中與IPC相關的功能。而我正在測試msgrcv系統調用時,它返回的錯誤函數沒有執行。關於android-kernel中的msgrcv?
這是真的msgrcv()系統調用沒有在android-kernel中實現,如果是這樣的話,爲什麼和android內核中的系統調用服務於msgrcv()系統調用。
我得到了相關聲明其中說系統V IPC(包括消息隊列)沒有實施仿生。但不知道這是什麼意思。
更新:我能夠在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);
}
請評論,如果信息不全,似乎模糊或者,幫助表示讚賞。
感謝您的輸入,如果我試圖繞過仿生接口並嘗試直接調用系統調用,那麼有可能嗎? –
我不確定我是否明白你的意思。正確的方法是在仿生lib中實現msgrecv系統調用c。從內核中查找msgrecv的系統調用編號,然後從第139行http://androidxref.com/6.0.0_r1/xref/bionic/中查看該鏈接。你也可以在你的代碼中實現它。但我不確定在這兩種情況下違反許可證的情況。 – digitizedx
好的,謝謝輸入 –