亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? s_shell.c

?? 用標準C實現(xiàn)shell功能,是操作系統(tǒng)的作業(yè)
?? C
字號:
#include <string.h>
#include <stdlib.h>
#include <conio.h>
#include <stdio.h>
#include <dir.h>
#include <dos.h>
#include <time.h>

/*定義全局變量*/
char root_dir[3];
char pre_dir[255];
char *cmd_line[255];
char curuser[10];

struct userinf
{
    char username[10];
    char userpass[10];
};

/*函數(shù)申明*/
void init();
int login();
int getcmd();
void dir();
void cd();
void clear();
void newdir();
void deldir();
void del();
void copy();
void cut();
void account();
void help();

main()
{
    init();
    while(1)/* 消息循環(huán) */
    {
        switch(getcmd())
        {
            case 0:
                help();
                break;
            case 1:
                dir();
                break;
            case 2:
                cd();
                break;
            case 3:
                newdir();
                break;
            case 4:
                deldir();
                break;
            case 5:
                del();
                break;
            case 6:
                copy();
                break;
            case 7:
                cut();
                break;
            case 8:
                account();
                break;
        }
    }
}

void init()/* 程序初始化 */
{
    if(login()==0)
    {
        exit(0);
    }
    strcpy(pre_dir,"C:\\");/*設定當前目錄*/
    clear();/* 清屏 */
    printf("S Shell-Above Windows XP [Ver 1.0]\n");
    printf("(C) Copyright 2007 stars_625.\n\n");
    getchar();/* 清空緩沖區(qū) */
}

int login()/* 程序登陸 */
{
    char name[10];
    char pass[10];
    int logintime=3;
    FILE *fp;
    struct userinf inf;
    while(logintime>0)/* 登陸錯誤超過三次自動退出 */
    {
        printf("Login:");
        scanf("%s",name);
        printf("Password:");
        scanf("%s",pass);
        if((fp=fopen("inf.dll","r"))==NULL)
        {
            printf("Can't open inf.dll file!\n");
            printf("Press any key to exit...");
            getch();
            exit(0);
        }
        while(fread(&inf,sizeof(inf),1,fp)==1 && strcmp(inf.username,name)!=0)
        {
        }
        fclose(fp);
        if(strcmp(inf.username,name)==0)
        {
            if(strcmp(inf.userpass,pass)==0)
            {
                strcpy(curuser,inf.username);
                clear();
                return 1;
            }
            else
            {
                printf("Login error, Press any key to relogin!\n");
                getch();
                clear();
            }
        }
        else
        {
            printf("The user is not exist, Press any key to relogin!\n");
            getch();
            clear();
        }
        logintime--;
    }
    printf("Login error above three times, Press any key to exit!");
    getch();
    return 0;
}

int getcmd()/* 獲得命令 */
{
    int i=0,j=0,k=0;
    char buf[255];
    printf("%s>",pre_dir);/* 打印提示符 */
    fgets(buf, 255, stdin);
    cmd_line[j] = calloc(255, sizeof(char));
    while (buf[i] != '\n' && buf[i] != '\0')/* 命令分析 */
    { 
        if (buf[i] != ' ')
        { 
            cmd_line[j][k] = buf[i];
            ++k; 
        } 
        else         
        { 
            cmd_line[j + 1] = calloc(255, sizeof(char));
            k = 0; 
            ++j; 
        }
        ++i; 
    }
    cmd_line[j + 1]=0;
    if(strcmp(cmd_line[0],"exit")==0)
    {
        exit(0);
    }
    else if(strcmp(cmd_line[0],"/?")==0 || strcmp(cmd_line[1],"/?")==0)
    {
        return 0;
    }
    else if(strcmp(cmd_line[0],"dir")==0)
    {
        return 1;
    }
    else if(strcmp(cmd_line[0],"cd")==0)
    {
        return 2;
    }
    else if(strcmp(cmd_line[0],"newdir")==0)
    {
        return 3;
    }
    else if(strcmp(cmd_line[0],"deldir")==0)
    {
        return 4;
    }
    else if(strcmp(cmd_line[0],"del")==0)
    {
        return 5;
    }
    else if(strcmp(cmd_line[0],"copy")==0)
    {
        return 6;
    }
    else if(strcmp(cmd_line[0],"cut")==0)
    {
        return 7;
    }
    else if(strcmp(cmd_line[0],"account")==0)
    {
        return 8;
    }
    else if(cmd_line[0][1]==':')
    {
        strcpy(pre_dir,cmd_line[0]);
        strcat(pre_dir,"\\");
    }
    else if(strcmp(cmd_line[0],"clear")==0)
    {
        clear();
    }
    else
    {
        printf("The command is not supported!\n");
    }
}

void dir()/* 列出文件及文件夾 */
{
    struct ffblk ff;
    char filepath[255];
    strcpy(filepath,pre_dir);
    findfirst(strcat(filepath,"*.*"),&ff,FA_DIREC);
    if(ff.ff_attrib==16)
    {
        printf("<DIR>\t");
    }
    else
    {
        printf("    \t");
    }
    printf("%s\n",ff.ff_name);
    while(findnext(&ff)==0)
    {
        if(ff.ff_attrib==16)
        {
            printf("<DIR>\t");
        }
        else
        {
            printf("    \t");
        }
        printf("%s\n",ff.ff_name);
    }
}

void cd()/* 改變當前目錄 */
{
    int i=0;
    struct ffblk ff;
    char filepath[255];
    strcpy(filepath,pre_dir);
    if(strcmp(cmd_line[1],"..")==0)/* 返回上一層目錄 */
    {
        while(filepath[i]!='\0')
        {
            i++;
        }
        if(filepath[i-2]!=':')
        {
            i=i-2;
            while(filepath[i]!='\\' && i>=2)
            {
                i--;
            }
            filepath[i+1]='\0';
            strcpy(pre_dir,filepath);
        }
    }
    else if(strcmp(cmd_line[1],"\\")==0)/*返回根目錄*/
    {
        while(filepath[i]!='\\')
        {
            i++;
        }
        filepath[i+1]='\0';
        strcpy(pre_dir,filepath);
    }
    else
    {
        findfirst(strcat(filepath,"*.*"),&ff,FA_DIREC);
        while(strcmp(ff.ff_name,cmd_line[1])!=0)
        {
            if(findnext(&ff)!=0)
            {
                break;
            }
        }
        if(strcmp(ff.ff_name,cmd_line[1])==0)
        {
            strcat(pre_dir,cmd_line[1]);
            strcat(pre_dir,"\\");
        }
        else
        {
            printf("Can't find the file!\n");
        }
    }
}

void clear()
{
    clrscr();
}

void newdir()
{
    char filepath[255];
    strcpy(filepath,pre_dir);
    if(mkdir(strcat(filepath,cmd_line[1]))==0)
    {
        printf("Make dir '%s' successfully!\n",cmd_line[1]);
    }
    else
    {
        printf("Make dir error!\n");
    }
}

void deldir()
{
    char filepath[255];
    strcpy(filepath,pre_dir);
    if(rmdir(strcat(filepath,cmd_line[1]))==0)
    {
        printf("Delete dir '%s' successfully!\n",cmd_line[1]);
    }
    else
    {
        printf("Delete dir error!\n");
    }
}

void del()
{
    char filepath[255];
    strcpy(filepath,pre_dir);
    if(unlink(strcat(filepath,cmd_line[1]))==0)
    {
        printf("Delete %s successfully!\n",cmd_line[1]);
    }
    else
    {
        printf("Delete error!\n");
    }
}

void copy()
{
    char filepath[255];
    char sourcepath[255];
    char aimpath[255];
    FILE *newfp;
    FILE *oldfp;
    char ch;
    strcpy(filepath,pre_dir);
    if(cmd_line[1][1]!=':')
    {
        strcpy(sourcepath,filepath);
        strcat(sourcepath,cmd_line[1]);
    }
    else
    {
        strcpy(sourcepath,cmd_line[1]);
    }
    if(cmd_line[2][1]!=':')
    {
        strcpy(aimpath,filepath);
        strcat(aimpath,cmd_line[2]);
    }
    else
    {
        strcpy(aimpath,cmd_line[2]);
    }
    if((oldfp=fopen(sourcepath,"r"))==NULL)
    {
        printf("Can't open old file!\n");
    }
    if((newfp=fopen(aimpath,"w"))==NULL)
    {
        printf("Can't creat new file!\n");
    }
    while((ch=fgetc(oldfp))!=EOF)
    {
        fputc(ch,newfp);
    }
    fclose(oldfp);
    fclose(newfp);
    printf("Copy from %s to %s successfully!\n",sourcepath,aimpath);
}

void cut()
{
    char filepath[255];
    char sourcepath[255];
    char aimpath[255];
    FILE *newfp;
    FILE *oldfp;
    char ch;
    strcpy(filepath,pre_dir);
    if(cmd_line[1][1]!=':')
    {
        strcpy(sourcepath,filepath);
        strcat(sourcepath,cmd_line[1]);
    }
    else
    {
        strcpy(sourcepath,cmd_line[1]);
    }
    if(cmd_line[2][1]!=':')
    {
        strcpy(aimpath,filepath);
        strcat(aimpath,cmd_line[2]);
    }
    else
    {
        strcpy(aimpath,cmd_line[2]);
    }
    if((oldfp=fopen(sourcepath,"r"))==NULL)
    {
        printf("Can't open old file!\n");
    }
    if((newfp=fopen(aimpath,"w"))==NULL)
    {
        printf("Can't creat new file!\n");
    }
    while((ch=fgetc(oldfp))!=EOF)
    {
        fputc(ch,newfp);
    }
    fclose(oldfp);
    fclose(newfp);
    if(unlink(sourcepath)==0)
    {
        printf("Cut from %s to %s successfully!\n",sourcepath,aimpath);
    }
    else
    {
        printf("Delete old file error!\n");
    }

}

void account()
{
    FILE *fp;
    struct userinf inf;
    if(strcmp(cmd_line[1],"/add")==0)
    {
        if((fp=fopen("inf.dll","r+"))==NULL)
        {
            printf("Can't open inf.dll file!\n");
            printf("Press any key to exit...");
            getch();
        }
        while(fread(&inf,sizeof(inf),1,fp)==1 && strcmp(inf.username,cmd_line[2])!=0)
        {
        }
        if(strcmp(inf.username,cmd_line[2])==0)
        {
            printf("Create user error, the user is exist!\n");
        }
        else
        {
            strcpy(inf.username,cmd_line[2]);
            strcpy(inf.userpass,cmd_line[3]);
            if(fwrite(&inf,sizeof(inf),1,fp)==1)
            {
                printf("Create user %s successfully!\n",inf.username);
            }
            else
            {
                printf("Create user error!\n");
            }
        }
        fclose(fp);
    }
    else if(strcmp(cmd_line[1],"/edit")==0)
    {
        if((fp=fopen("inf.dll","r+"))==NULL)
        {
            printf("Can't open inf.dll file!\n");
            printf("Press any key to exit...");
            getch();
        }
        while(fread(&inf,sizeof(inf),1,fp)==1 && strcmp(inf.username,cmd_line[2])!=0)
        {
        }
        if(strcmp(inf.username,cmd_line[2])!=0)
        {
            printf("Edit user error, the user is not exist!\n");
        }
        else
        {
            strcpy(inf.username,cmd_line[2]);
            strcpy(inf.userpass,cmd_line[3]);
            fseek(fp,-20L,1);
            if(fwrite(&inf,sizeof(inf),1,fp)==1)
            {
                printf("Edit user %s successfully!\n",inf.username);
            }
            else
            {
                printf("Edit user error!\n");
            }
        }
        fclose(fp);
    }
    else
    {
        printf("Please enter correct parameter,type /? for help!\n");
    }
}

void help()
{
    if(strcmp(cmd_line[0],"/?")==0)
    {
        printf("The list of commands.\n\n");
        printf("  dir\t\tList the files and dirs.\n");
        printf("  cd\t\tChange the dir.\n");
        printf("  clear\t\tClear the screen.\n");
        printf("  newdir\tMake a dir.\n");
        printf("  deldir\tDelete a dir.\n");
        printf("  del\t\tDelete a file.\n");
        printf("  copy\t\tCopy a file from a place to another.\n");
        printf("  cut\t\tCut a file from a place to another.\n");
        printf("  account\tAdd edit or delete a account.\n\n");
        printf("For more information add type /? after command.\n\n");
        printf("Notice:All the command line is capitalization distinction!\n\n");
    }
    else
    {
        if(strcmp(cmd_line[0],"dir")==0)
        {
            printf("List the files and dirs.\n\n");
            printf("dir path\n\n");
            printf("  path\t\tThe dir you want to list.\n");
            printf("  \t\tif path is NULL then list the current dir.\n\n");
        }
        else if(strcmp(cmd_line[0],"cd")==0)
        {
            printf("Change the dir.\n\n");
            printf("cd < \\ | .. | path>\n\n");
            printf("  \\\t\tReturn to the root dir.\n");
            printf("  ..\t\tReturn to the parent dir.\n");
            printf("  path\t\tThe dir you want change to.\n\n");
        }
        else if(strcmp(cmd_line[0],"clear")==0)
        {
            printf("Clear the screen.\n\n");
            printf("clear\n\n");
        }
        else if(strcmp(cmd_line[0],"newdir")==0)
        {
            printf("Make a dir.\n\n");
            printf("newdir path\n\n");
            printf("  path\t\tThe dir path which you want to create.\n\n");
        }
        else if(strcmp(cmd_line[0],"deldir")==0)
        {
            printf("Delete a dir.\n\n");
            printf("deldir path\n\n");
            printf("  path\t\tThe dir path which you want to delete.\n\n");
        }
        else if(strcmp(cmd_line[0],"del")==0)
        {
            printf("Delete a file.\n\n");
            printf("del filepath\n\n");
            printf("  filepath\tThe filepath which you want to delete.\n\n");
        }
        else if(strcmp(cmd_line[0],"copy")==0)
        {
            printf("Copy a file from a place to another.\n\n");
            printf("copy source aim\n\n");
            printf("  source\tThe source file path.\n");
            printf("  aim\t\tThe aim file path.\n\n");
        }
        else if(strcmp(cmd_line[0],"cut")==0)
        {
            printf("Cut a file from a place to another.\n\n");
            printf("cut source aim\n\n");
            printf("  source\tThe source file path.\n");
            printf("  aim\t\tThe aim file path.\n\n");
        }
        else if(strcmp(cmd_line[0],"account")==0)
        {
            printf("Add edit or delete a account.\n\n");
            printf("account < /add | /edit | /del > username userpass\n\n");
            printf("  username\tThe account name.\n");
            printf("  userpass\tThe account password.\n");
            printf("  /add\t\tAdd a account.\n");
            printf("  /edit\t\tEdit a account.\n");
            printf("  /del\t\tDelete a account.\n\n");
        }
        else
        {
            printf("The command is not supported!\n");
        }
    }
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美精品一卡二卡| 亚洲永久精品国产| 欧美激情一区二区三区四区| 亚洲精品视频在线观看网站| 久久成人免费网站| 99re成人精品视频| 久久久久久亚洲综合影院红桃| 亚洲青青青在线视频| 欧美色手机在线观看| 欧美精品一区二区在线观看| 99精品视频中文字幕| 欧美另类高清zo欧美| 亚洲视频一区二区在线| 国模套图日韩精品一区二区| 91片黄在线观看| 中文字幕国产精品一区二区| 国内欧美视频一区二区| 宅男噜噜噜66一区二区66| 一级女性全黄久久生活片免费| 国产suv精品一区二区6| 久久亚洲捆绑美女| 国产永久精品大片wwwapp| 欧美一区二区三区视频| 五月婷婷综合在线| 欧美日韩综合不卡| 午夜精品福利一区二区三区av| 色综合天天综合狠狠| 国产精品欧美一级免费| 高清视频一区二区| 久久这里只有精品首页| 国产精品18久久久久久久久久久久 | 国产激情一区二区三区| 精品sm在线观看| 国产精品亚洲第一| 中文字幕av在线一区二区三区| 国产麻豆午夜三级精品| 久久久不卡网国产精品二区| 高清不卡一二三区| 国产精品初高中害羞小美女文| 国产91丝袜在线播放九色| 欧美国产精品专区| 91视频在线看| 亚洲成人自拍一区| 日韩你懂的在线观看| 国产成人综合网| 国产精品不卡一区二区三区| 91欧美一区二区| 一区二区三区国产精华| 欧美日本一区二区在线观看| 亚洲国产日韩综合久久精品| 欧美精品乱码久久久久久| 六月婷婷色综合| 国产精品久久久久毛片软件| 在线免费不卡视频| 欧美a一区二区| 欧美极品美女视频| 欧美日韩在线三级| 国产综合成人久久大片91| 国产精品亲子伦对白| 欧美日韩黄色一区二区| 国产永久精品大片wwwapp| 亚洲色图色小说| 日韩一区二区三区电影在线观看 | 全国精品久久少妇| 国产欧美综合在线观看第十页| 色视频欧美一区二区三区| 蜜桃视频一区二区三区在线观看| 国产日韩三级在线| 777色狠狠一区二区三区| 国产美女在线观看一区| 亚洲最新在线观看| 国产拍欧美日韩视频二区 | 94-欧美-setu| 九一九一国产精品| 亚洲精品乱码久久久久久| 欧美精选一区二区| 91无套直看片红桃| 韩国一区二区视频| 一区二区三区欧美| 久久久国产精品午夜一区ai换脸| 欧美综合久久久| 成人一区二区三区中文字幕| 视频一区二区欧美| 樱花影视一区二区| 国产女主播视频一区二区| 337p亚洲精品色噜噜噜| 一本色道久久综合亚洲aⅴ蜜桃 | 日韩高清在线观看| 亚洲欧洲三级电影| 久久嫩草精品久久久精品一| 欧美人与性动xxxx| 色综合天天综合网天天看片 | 五月婷婷综合激情| 中文字幕一区在线| 国产欧美视频一区二区| 精品国产一区二区在线观看| 欧美日韩第一区日日骚| www.在线成人| 国产成a人亚洲精| 精品一区二区三区免费观看| 三级不卡在线观看| 亚洲成人综合视频| 亚洲国产日韩综合久久精品| 国产精品国产三级国产aⅴ入口| 欧美一级一区二区| 欧美精品一卡两卡| 欧美精品123区| 欧美美女喷水视频| 欧美日韩高清一区二区三区| 欧美日韩午夜影院| 欧美精品丝袜久久久中文字幕| 欧美午夜精品一区二区三区| 色婷婷久久久综合中文字幕 | 成人国产免费视频| 国产盗摄精品一区二区三区在线| 国产久卡久卡久卡久卡视频精品| 激情欧美一区二区| 狠狠色狠狠色合久久伊人| 久久er精品视频| 国产精品自在欧美一区| 国产suv一区二区三区88区| 丁香天五香天堂综合| 丁香六月综合激情| jlzzjlzz国产精品久久| 91美女片黄在线| 欧美专区亚洲专区| 欧美日韩久久久| 日韩一二三四区| 久久亚洲私人国产精品va媚药| 精品第一国产综合精品aⅴ| 久久亚洲精精品中文字幕早川悠里 | 成人黄色网址在线观看| 91麻豆产精品久久久久久| 在线亚洲一区观看| 欧美日韩视频在线一区二区 | 精品一区二区在线免费观看| 国产精品88888| 91在线观看一区二区| 91精品办公室少妇高潮对白| 欧美一级片在线观看| 久久蜜臀中文字幕| 亚洲乱码国产乱码精品精可以看| 亚洲一级电影视频| 国产尤物一区二区| 91精品福利视频| 久久在线观看免费| 亚洲女同一区二区| 美国十次了思思久久精品导航| 国产精品一区二区视频| 在线一区二区三区| 久久久久九九视频| 一区二区欧美视频| 韩国av一区二区三区四区| 91久久香蕉国产日韩欧美9色| 欧美大片一区二区| 亚洲精品中文在线| 国产在线视频一区二区三区| 色综合久久中文字幕综合网 | 日韩亚洲欧美在线观看| 亚洲色图视频网站| 国产一区二区免费看| 欧美日韩免费观看一区三区| 欧美极品aⅴ影院| 日韩综合一区二区| 91女厕偷拍女厕偷拍高清| 精品国产污网站| 亚洲18色成人| 国产**成人网毛片九色| 精品国产乱码久久久久久老虎| 亚洲图片你懂的| 国产精品一区二区久久精品爱涩| 欧美日韩一区中文字幕| 综合在线观看色| 国产精品一区二区免费不卡 | 欧美福利视频一区| 亚洲免费观看高清完整版在线观看熊 | 日韩成人午夜电影| 色999日韩国产欧美一区二区| 日韩精品一区二区三区视频播放| 五月天激情综合| 久久伊99综合婷婷久久伊| 国产一本一道久久香蕉| 久久先锋资源网| 国产91精品一区二区麻豆网站| 亚洲桃色在线一区| 91视频一区二区三区| 黄网站免费久久| 青草av.久久免费一区| 亚洲日本一区二区三区| 欧美一区二区日韩| 日韩欧美在线影院| 制服丝袜国产精品| 成人美女视频在线观看| 亚洲国产一区二区三区青草影视 | av午夜精品一区二区三区| 亚洲一区视频在线| 国产午夜精品理论片a级大结局| 91在线观看美女| 久久91精品国产91久久小草| 亚洲午夜影视影院在线观看|