【发布时间】:2011-07-09 13:48:12
【问题描述】:
我需要在我的进程启动时传递给它的参数。
这意味着,在argv[] 中,除了第一个(这是我的进程的名称)之外,我需要其他所有内容。
我无法复制它,因为它是 char * argv[] 类型。
谁能给我有关如何正确执行此操作的要点,或者可能是一个小代码sn-p。比起用头撞墙,我更喜欢这样。
编辑:
澄清我的问题:
关键是我需要除 argv 的第一个参数之外的所有参数。所以我不能只是将它发送到其他进程,因为我实际上将它用作 execv 的参数。
【问题讨论】:
-
然后只需将 argv + 1 传递给 execv。那是减去第一个参数的数组。
-
execv 采用相同的参数列表,包括 argv[0]。您需要复制它的唯一原因是如果您需要更改 argv[0]。
-
@fizzer 错了—— execv 需要第 0 个参数。
-
嗯——经过反思,他不能假设 argv 以空指针结尾,正如 execv 所要求的那样
-
是的 - 他需要复印一份。
标签: c string pointers arguments