08/02/19 00:59:51
>>319
横レスになるけど.
先に ">"の前後で文字列を切り分けてからコマンド部分をあらためて切り分ける方法もあるんじゃないかな。
標準関数を使っていいのなら切り分けはこんな感じ↓
char redirect[20]; // リダイレクト先
_Bool test_parse( char *command, char **param )
{
_Bool ret = false;
char cmd[256]; // コマンド部
int result;
// >の前後で文字列を切り分け
result = sscanf( command, "%255[^>]%*[>]%19s", cmd, redirect );
if( result > 1 ) {
ret = true;
}
getToken( cmd, param ); // ここでコマンド部をパラメータと切り分ける関数を別に作って呼ぶ
return ret;
}
こうするとローカル変数cmdとredirectにそれぞれ>の前後で切り分けた文字が入るはず。
ついでにretで1以外が入っていた場合はredirectにも代入があったことになるからフラグでそれを知らせてます。