linux操作系统内核实习(二)

转载 2006年05月23日 21:38:00

#include <stdio.h>
#include <stdlib.h>
#include <sys/types.h>
#define MAX_LINE 80

struct command_struct{
    int argc;
    char* name;
    char* argv[64];
};

void parse(char* line, char** argv)
{
    while (*line != '/0')
    {
        while (*line==' ' || *line=='/t' || *line=='/n')
         {
            if ('/n' == *line)
                break;
            *line++ = '/0';
         }
         if ('/n' == *line)
         {
            *line = '/0';
             break;
         }
         *argv++ = line;
         while (*line != '/0' && *line!=' ' && *line!='/t' && *line!='/n')
            line++;
    }
    *argv = '/0';
   
}
void execute(char** argv)
{
    pid_t pid;
    int status;
   
    if ((pid = fork()) < 0)
    {
    }else if (pid == 0)
    {
        if (execvp(*argv, argv) < 0)
        {
            printf("ERROR:execvp");
           exit(-1);
        }
    }else
    {
        while (wait(&status) != pid)
             ;
    }
}

int main(int argc, char* argv[])
{
    char cargv[241];      
    char* cp = cargv;
    int i = sizeof(cargv)/MAX_LINE;
    char* temp;
    struct command_struct cmd;
   
    while (1)
    {
        printf("%>");
 
        
        while (i-- && (temp=fgets(cargv, MAX_LINE, stdin)) )
        {         
    
            temp += strlen(cp);
            cp += MAX_LINE;
            if (temp < cp)
           {
            //*temp = '/0';
             break;
          }
        }
        parse(cargv, cmd.argv);
        if (strcmp(cmd.argv[0], "exit") == 0)
        exit(0);      
        execute(cmd.argv);
    }
}

Reference:http://www.csl.mtu.edu/cs4411/www/NOTES/process/fork/exec.html

谈操作系统(linux内核)学习的重要性

.   内核学习概述 1.1 再谈操作系统(linux内核)学习的重要性 现阶段国内大学的计算机教学情况不容乐观,教材过时或者实用性不够成为我们大学生学业就业或者研究生进行项目研究实践的难题,当前...
  • u011013137
  • u011013137
  • 2013年06月14日 10:15
  • 1498

Linux实验二:Linux 内核模块测试

一、实验目的 对Linux内核模块进行了解。 二、实验内容 创建一个内核模块,在加载和卸载模块时在内核中打印相关信息。 三、背景知识: 一、什么是内核模块?        内核模块是L...
  • longteng1116
  • longteng1116
  • 2013年04月10日 16:31
  • 2783

献给初学者:谈谈如何学习Linux操作系统

本文出自 “技术成就梦想” 博客,请务必保留此出处http://ixdba.blog.51cto.com/2895551/569329。一、 选择适合自己的linux发行版 谈到linux的发行版本...
  • xsj_blog
  • xsj_blog
  • 2016年06月16日 09:47
  • 1764

Linux操作系统内核实习

  • 2009年01月05日 08:56
  • 5.57MB
  • 下载

【YPP】Linux操作系统内核实习

  • 2007年08月26日 19:53
  • 5.56MB
  • 下载

LINUX操作系统内核实习

  • 2010年02月25日 14:52
  • 1.46MB
  • 下载

Linux操作系统内核实习

  • 2008年08月24日 10:48
  • 9.89MB
  • 下载

Linux操作系统内核实习

  • 2009年01月13日 11:06
  • 5.57MB
  • 下载

LINUX操作系统内核实习 PART1

  • 2010年03月25日 22:40
  • 89KB
  • 下载

linux学习之: 免费Linux操作系统内核实习

  • 2007年09月30日 19:14
  • 3.04MB
  • 下载
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:linux操作系统内核实习(二)
举报原因:
原因补充:

(最多只允许输入30个字)