+ -
当前位置:首页 → 问答吧 → 过滤两个关键字,并提取之间的内容

过滤两个关键字,并提取之间的内容

时间:2011-11-07

来源:互联网

第一次发帖,不知道表达的对不对,目前刚接触操作系统,实验要求使用C语言做一个程序,需要一个死循环占用终端,并且可以执行类似ls、touch、cd等命令。现在不知道怎么实现ls命令额。。。特来求助各位高手
不成熟的代码如下:
代码:
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <unistd.h>
#include <grp.h>
#include <signal.h>




#define SIGSTCP 20
void cd();
void dir();

int main(){
char buf[80],prompt[100];
   char tmp[80];
   memset(tmp, 0, sizeof(tmp));
   char *username;
   struct group *data;
        data = getgrgid(getgid());
   username = data->gr_name="WLLY";
   strcat(tmp, "/home/");
   strcat(tmp, username);



printf("-------------*Welcome*-------------\n");
       while(1) {
      getcwd(buf, sizeof(buf));
      
                   memset(buf, 0, sizeof(buf));
         buf[0] = '~';
         buf[1] = '\0';
      
      sprintf(prompt,"%s:%s$", username, buf);
               // printf("%s",prompt);
                 int c;
                  c=getchar();
                      if(c=='A')
                         cd();
                              else{
                                 if (c=='B')
                                   dir();
                                         else
                        printf("%s",prompt);}
                                       
                                         
           
             
                }
               
//      strcat(prompt,username);
//      strcat(prompt,":");
//      strcat(prompt,buf);
//      strcat(prompt,"$");
//      printf("%s",prompt);

       }



void cd(){
printf("hgrtgf");
printf("\n");   
}
void dir(){
printf("gvryhdf");
printf("\n");   
}

作者: 北_殇   发布时间: 2011-11-07

代码:
man 3 system
# or
man 2 fork
man 2 exec

作者: lilydjwg   发布时间: 2011-11-07

lilydjwg 写道:
代码:
man 3 system
# or
man 2 fork
man 2 exec

没看明白额

作者: 北_殇   发布时间: 2011-11-07