繁体   English   中英

如何为 execv 添加到 *argv?

[英]How to add to *argv for execv?

假设我想用 execv 删除一些东西,但我还不知道要删除什么。

char *argv[] = {"rm", "-r"};

现在,我愿意吗? 如何添加到 argv? 如何以 NULL 结束它? 谢谢!

如果要插入单个文件名、固定数量的文件名或已定义的最大文件名数量,可以使用 NULL 指针作为占位符静态定义和初始化指针数组

/* placeholder for two file names and terminating NULL pointer */
char *argv[] = {"rm", "-r", NULL, NULL, NULL};

然后用一个或两个文件名替换索引 2(和 3)处的NULL指针

char filename1[1024];
char filename2[1024];

/* input or construct filenames as strings somehow */

argv[2] = filename1;
argv[3] = filename2;

如果您需要处理未知数量的文件名,您可能必须动态分配所需大小的指针数组。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

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