Chinaunix

标题: 请问怎样处理字符串 [打印本页]

作者: blackfur    时间: 2014-02-25 21:05
标题: 请问怎样处理字符串
各种C函数实现一个简单的交互式Shell,要求:

1、给出提示符,让用户输入一行命令,识别程序名和参数并调用适当的exec函数执行程序,待执行完成后再次给出提示符。

2、识别和处理以下符号:

    简单的标准输入输出重定向(<和>):仿照例 30.5 “wrapper”,先dup2然后exec。

    管道(|):Shell进程先调用pipe创建一对管道描述符,然后fork出两个子进程,一个子进程关闭读端,调用dup2把写端赋给标准输出,另一个子进程关闭写端,调用dup2把读端赋给标准输入,两个子进程分别调用exec执行程序,而Shell进程把管道的两端都关闭,调用wait等待两个子进程终止。

你的程序应该可以处理以下命令:

○ls△-l△-R○>○file1○
○cat○<○file1○|○wc△-c○>○file1○
○表示零个或多个空格,△表示一个或多个空格

-- 请问怎样把命令行各个元素分割出来? 感觉用strtok分不出redirect和pipe!!! T_T
作者: hnxymjj    时间: 2014-02-25 22:57
可以试试getopt试试
作者: cobras    时间: 2014-02-26 10:30
楼主主要问题就是将命令行解析为参数集。我写了个函数,可以处理包括引号在内的参数。但不能处理通配符参数和重定向符。
可以将问题分解了。先处理重定向符,解析为参数集,最后处理通配符参数。




欢迎光临 Chinaunix (http://bbs.chinaunix.net/) Powered by Discuz! X3.2