【发布时间】:2021-07-10 17:01:05
【问题描述】:
假设我想用 execv 删除一些东西,但我还不知道要删除什么。
char *argv[] = {"rm", "-r"};
现在,我愿意!如何添加到 argv?如何以 NULL 结束它?谢谢!
【问题讨论】:
标签: linux ubuntu c arrays exec
假设我想用 execv 删除一些东西,但我还不知道要删除什么。
char *argv[] = {"rm", "-r"};
现在,我愿意!如何添加到 argv?如何以 NULL 结束它?谢谢!
【问题讨论】:
标签: linux ubuntu c arrays exec
如果要插入单个文件名、固定数量的文件名或已定义的最大文件名数量,可以静态定义和初始化指针数组,使用 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;
如果您需要处理未知数量的文件名,您可能必须动态分配所需大小的指针数组。
【讨论】: