繁体   English   中英

execv是如何做到的?

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM