【发布时间】:2015-12-03 13:03:29
【问题描述】:
我正在尝试将 int[] 的地址传递给系统调用。但是消息只有字符指针字段。
我尝试将 int 指针转换为 char 指针并再次转换,但数组中的结果不正确。
int pidarray[j];
m.m1_p3 = (char*)pidarray;
我还尝试将数组的地址存储为整数并通过消息整数字段传递它。
int pidarray[j];
m.m1_i3 = &pidarray;
编辑:
这将是我创建的系统调用,旨在用 pid 填充数组并将数据复制回进程,因此我需要传递数组的地址。我把系统调用称为so,
_syscall(PM_PROC_NR, GETCHILDPIDS, &m);
它填充一个数组并尝试将其复制回调用进程拥有的内存空间。这样做是:
sys_vircopy(SELF, (vir_bytes) &test, who_e,(vir_bytes) m_in.m1_i3, sizeof(test));
其中 test 是一个 int[]。
如何以这种格式发送 int[] 的地址?
【问题讨论】:
-
如果您认为问题不重复,请编辑您的问题。为什么要使用系统调用?显示正在执行系统调用的代码。