上传者: 42131785
|
上传时间: 2021-10-07 10:12:17
|
文件大小: 5KB
|
文件类型: -
一个简单的外壳
您将编写一个C程序用作接受用户命令的Shell接口,然后在一个单独的进程中执行每个命令。 Shell界面向用户提示,然后输入下一个命令。 下面的示例说明了提示mysh>和用户的下一个命令:cat file1。
-mysh> cat file1
要实现Shell接口,请首先让父进程读取用户在命令行上输入的内容(在本例中为cat prog.c),然后创建一个单独的执行该命令的子进程。 除非另有说明,否则父进程将等待子进程退出后再继续。 但是,UNIX Shell通常还允许子进程在后台或同时运行。 为此,我们在命令末尾添加一个&符(&)。 因此,如果我们将上述命令重写为mysh> cat file1,那么父进程和子进程将同时运行。 下面给出了一个简单外壳的轮廓。 单独的子进程是使用fork()系统调用创建的,而用户命令是使用exec()系列中的系统调用之一(例如execvp(