这是我的导师为我们提供的一个起点。我很难找到一种方法来使用提供的 parcer gettoks() 从 UNIX 环境中的命令(例如“ls”或“hist”)读取输入。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 );
}