实现的命令解释如下:
pwd //显示当前目录名
dir <目录名> //列出目录及文件
cd <目录名或路径> //改变当前文件夹
newdir <目录名> //新建目录
deldir <目录名> //删除目录
exit //退出命令解释程序
提示:整个程序的大致框架可参考如下:
while ( exit未被输入 )
{ 接收键盘的一行输入
分析输入的命令
创建子进程,在子进程中对输入的命令进行处理从而实现功能
父进程等待子进程结束
}
2. 设计要求
(1) 设计必须在Linux环境下进行。
(2) 命令解释程序的提示符为:@
(3) 程序编写中不得使用system()系统调用。
(4) 整个程序必须严格经过测试,完成所有基本功能。源程序应有较详尽的注释。
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#include<unistd.h>
#include<sys/types.h>
#include<sys/wait.h>
int main(int takenc,char*takenv[])
{
int i=0,s;
pid_t pid;
char *a;
char *taken[50];
while (1)
{
fgets(a,50,stdin);
for (i=0;i<=sizeof(a);i++)
{
if (*(a+i)==' ')
{
taken[0]=strtok(a," ");
taken[1]=strtok(NULL,"\n");
break;
}
if (*(a+i)=='\n')
{
taken[0]=strtok(a," ");
taken[1]=NULL;
pwd //显示当前目录名
dir <目录名> //列出目录及文件
cd <目录名或路径> //改变当前文件夹
newdir <目录名> //新建目录
deldir <目录名> //删除目录
exit //退出命令解释程序
提示:整个程序的大致框架可参考如下:
while ( exit未被输入 )
{ 接收键盘的一行输入
分析输入的命令
创建子进程,在子进程中对输入的命令进行处理从而实现功能
父进程等待子进程结束
}
2. 设计要求
(1) 设计必须在Linux环境下进行。
(2) 命令解释程序的提示符为:@
(3) 程序编写中不得使用system()系统调用。
(4) 整个程序必须严格经过测试,完成所有基本功能。源程序应有较详尽的注释。
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#include<unistd.h>
#include<sys/types.h>
#include<sys/wait.h>
int main(int takenc,char*takenv[])
{
int i=0,s;
pid_t pid;
char *a;
char *taken[50];
while (1)
{
fgets(a,50,stdin);
for (i=0;i<=sizeof(a);i++)
{
if (*(a+i)==' ')
{
taken[0]=strtok(a," ");
taken[1]=strtok(NULL,"\n");
break;
}
if (*(a+i)=='\n')
{
taken[0]=strtok(a," ");
taken[1]=NULL;