为了简单起见,我修改了我的程序。我想要做的是在运行时接受任意数量的参数并将其传递给execlp()
. 我正在使用固定长度的二维数组m[][]
,这样任何未使用的(剩余的)插槽都可以传递NULL
给execlp
(在这种情况下m[2][]
)。
#include<stdio.h>
#include<stdlib.h>
#include<unistd.h>
#include<string.h>
int main() {
char m[3][5], name[25];
int i;
strcpy(name, "ls");
strcpy(m[0], "-t");
strcpy(m[1], "-l");
//To make a string appear as NULL (not just as an empty string)
for(i = 0; i < 5; i++)
m[2][i] = '\0'; // or m[2][i] = 0 (I've tried both)
execlp(name, m[0], m[1], m[2], '\0', 0, NULL);
// Does not execute because m[2] is not recognized as NULL
return 0;
}
我该怎么做?