簡単にするために、プログラムを修正しました。私がやりたいことは、実行時に任意の数のパラメーターを受け入れて、それを に渡すことexeclp()
です。未使用の(残りの)スロットが(この場合は)にm[][]
渡されるように、固定長の2次元配列を使用しています。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;
}
どうすればいいのですか?