跟我一起写操作系统

    返回首页    发表留言
本文作者:李德强
          第四节 mkdir命令
 
 

        mkdir为make directories的简写,功能为在创建文件夹。可以通过多个参数来创建多个文件夹。注意:我们的操作系统是被烧录在系统光盘镜像中,光驱设备是一个只读设备。当系统启动之后,系统只能对硬盘进行写入操作,不能对光盘进行写入操作。也就是说,只能在/data/work/和/data/tool/这两个目录下才能执行mkdir命令。其实现如下:

session = malloc(sizeof(s_session));
session->current_path = malloc(SHELL_CMD_LEN);
for (int i = 1; i < argc; ++i)
{
        int params[2];
        params[0] = 7;
        params[1] = (int) session;
        __asm__ volatile("int $0x80" :: "a"(params));
        if (is_exist(args[i]))
        {
                printf("-bash : \"%s\": the folder already exists.\n", args[i]);
        }
        else
        {
                char f_name[0x200];
                str_copy(args[i], f_name);
                int len = str_len(f_name);
                if (f_name[len - 1] != '/')
                {
                        f_name[len] = '/';
                        f_name[len + 1] = '\0';
                }
                int s = fs_create_folder(session->current_path, f_name, session->uid, session->uid, 01755);
                if (s == -1)
                {
                        printf("-bash : \"%s\": permission denied.\n", args[i]);
                }
                else
                {
                        printf("-bash : create folder \"%s\" sucessfully.\n", args[i]);
                }
        }
}
free(session->current_path);
free(session);

        运行结果:



        源代码的下载地址为:

https            https://github.com/magicworldos/lidqos.git 
git              git@github.com:magicworldos/lidqos.git 
subverion        https://github.com/magicworldos/lidqos 
branch           v0.30

 

    返回首页    返回顶部
  看不清?点击刷新

 

  Copyright © 2015-2018 问渠网 辽ICP备15013245号