我有一個字符串數組,其中包含execvp
的輸入參數。我怎樣才能把它變成一個字符串指針數組execvp
?從c中的char數組向execvp添加參數
對於一個參數的命令,兩個字符串都存在:
char param[4][10] = ["wc","file.txt"]
而且有兩個參數:
char param[4][10] = ["cp","file1.txt","file2.txt"]
如果我知道提前參數的數目,我可以簡單的寫
char *arg[]={param[0],param[1],NULL}
execvp(arg[0],arg);
或
char *arg[]={param[0],param[1], param[2], NULL}
execvp(arg[0],arg);
。
但是當我不知道參數的數量時,我該怎麼辦?
我試過循環
但是這給了我段錯誤。
你在寫過去的分配'array'。 'array [count]'不在大小爲count的數組中。你不能對隨機未初始化的指針進行「strcpy」你不需要。參數中的最後一項必須是空指針。 –
@Antti,對不起,混亂。我的參數數組大小爲4,其索引是3.那就是爲什麼。 –
您正在寫入'arg [3]',其中'arg'是一個包含3個元素的可變長度數組。 –