[英]How does execv does it?
也许这是一个魔术问题。 我正在尝试创建一个具有以下签名的函数(或等效的const char * const * args)
void ExecuteJavaVM(char** args){
}
我想模拟execv
如何处理参数数组,因为您可能知道execv
不需要我们放置数组的最大元素数。 它只是神奇地计算了我们作为第二个参数传递的数组中元素的数量。
这是execv签名。
intptr_t _execv(
const char *cmdname,
const char *const *argv
);
execv以某种方式设法“计数”数组argv中的元素数量。 这正是我想要做的。
sizeof
几乎是无用的,因为数组的数据类型会衰减为一个简单的指针,所以sizeof
很可能总是返回4。
有任何想法吗? 任何人都知道在哪里可以找到Windows这些功能的来源吗?
此致,Ariel
从POSIX文档 (重点是我的):
参数
argv
是指向空终止字符串的字符指针数组。 应用程序应确保此数组的最后一个成员为空指针。 这些字符串将构成新过程映像可用的参数列表。argv[0]
的值应指向与由exec函数之一启动的进程关联的文件名。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.