char[][] 型 (別名、文字列の配列) のデータを使用して execvp を実行しようとしています。これで execvp()
、文字列へのポインターを最初のパラメーターとして受け取り、次に文字列の配列へのポインターを 2 番目のパラメーターとして受け取ることがわかりました。以下で動作させるための文字列と文字列-私が試したものはすべて互換性がないと見なされます!
どんな助けにも感謝します:)-コードを少しコンパクトにするためにヘッダーを削除しました!
struct userinput {
char anyargs[30][30]; //The tokenised command
};
int main() {
struct userinput input = { { { 0 } } }; //I believe is valid to set input to 0's
struct userinput *inPtr = &input; //Pointer to input (direct access will be unavailable)
strcpy(inPtr->anyargs[0], "ls"); //Hard code anyargs to arbitary values
strcpy(inPtr->anyargs[1], "-lh");
char (*arrPointer)[30]; //Pointer to an array of char *
arrPointer = &(inPtr->anyargs[0]);
printf("arrPointer[0]: %s, arrPointer[1]: %s\n", arrPointer[0],
arrPointer[1]);
printf("At exec case; ");
execvp( arrPointer[0], arrPointer);
perror("Command not recognised"); //Prints string then error message from errno
return 0;
}