これが私のインストラクターが私たちに提供してくれた出発点です。提供されているパーサー gettoks() を使用して、「ls」や「hist」などの UNIX 環境のコマンドから入力を読み取る方法を見つけるのに苦労しています。gettoks() は、パーサーのコードを持つ .l からリンクされています。toks (ポインターへのポインターとして宣言されている) を使用して、入力行を gettoks() に渡し、それを解析する方法 (入力に基づいて適切なシステム コールを返します) fget を使用してみましたが、コンパイラ エラー。任意の提案をいただければ幸いです。
//*********************************************************
int main( int argc, char *argv[] )
{
// local variables
int ii;
char **toks;
int retval;
// initialize local variables
ii = 0;
toks = NULL;
retval = 0;
// main (infinite) loop
while( true )
{
// get arguments
toks = gettoks();
if( toks[0] != NULL )
{
// simple loop to echo all arguments
for( ii=0; toks[ii] != NULL; ii++ )
{
cout << "Argument " << ii << ": " << toks[ii] << endl;
}
if( !strcmp( toks[0], "exit" ))
break;
}
}
// return to calling environment
return( retval );
}