实现一些Linux上的基础命令,如ls,exit,ps
在开始之前,有一个新的内置类型给讲解一下
char buff[]={};
char arr[]={};
假设里面的内容是
stc ghb sgj sjk
char* s=strtok(buff," ");
int i=0;
while(s!=NULL){
arr[i++]=s;
strtok(NULL," ");
}
那么第一次执行这个语句会将stc后面的空格替换为\0并以第一个遇到的\0为标记。截取前面的内容并赋值给s。(strtok里有一个内置的指针,用来记录上一次读取到的位置)
再下来的语句中,因为strtok里面有记录位置的指针,所以我们只需要传如NULL,就可以继续读取到下一个为空格的地方。
所以第二次读取到的内容是ghb
第三次读取到的内容是sgj
第四次读取到的内容是sjk
测试用例
这里我们需要注意,Linux约定(-lf)一个-表示后面的命令按个算,比如一个l和一个f
而两个-如(--color)表示后面是个单词,只用算作一次。