引数を関数strcmpしようとしたときこんにちは、私は[しかし、事前に定義された文字列に文字列配列を比較する必要があるが、私は、変数引数を使用するときに[0]それはなぜ1つのセグがフォールトしているのですか?
int gash_execute(char **args){
int i;
if(args[0] == NULL){
return 1;
}
for(i = 0; i < gash_command_num(); i++){
if(strcmp(args[0], functions[i]) == 0){
return(*function_address[i])(args);
}
}
return gash_launch(args);
}
以下のように私の関数のstrcmpで動作するプログラムを持っています私は以下のように私はsegの欠陥を取得します。誰も私にこの問題の解決策を見つけるのを助けることができますか?
int gash_execute(char **args){
int i;
if(args[0] == NULL){
return 1;
}
for(i = 0; i < gash_command_num(); i++){
if(strcmp(args[i], functions[i]) == 0){
return(*function_address[i])(args);
}
}
return gash_launch(args);
}
引数[]は、以前スペースで区切られた文字列の配列で、このプログラムは、I入力「猫のエコーLS」引数[0]になります私のシェルコマンドラインでふりカスタムシェルのためなので、 "猫"など。しかし、今私は/リダイレクトを実装する必要があります。だから、私はargsのすべての要素が "<" ">" "" | "そのうちの1つがそこから取り出せる場合
あなたはあまりにもargs配列を読み込んでいます。変数の意味を説明していないので、これ以上のことは言い難いです。 – jforberg
'gash_command_num'、' functions'、 'function_address'、' gash_launch'とは何ですか?あなたの最小、完全、および検証可能な例はどこですか? – inetknght
'gash_command_num()'ソースを表示できますか? – vmonteco