首先我们得知道Linux下产生新进程的过程是--->先复制---->再替换子进程(fork + exec)
来看代码 代码中都有解释的
下面代码实现的主要功能就是内置命令cd的简单操作和exit的作用
#include <stdio.h>
#include <assert.h>
#include <stdlib.h>
#include <string.h>
#include <unistd.h>
#include <sys/wait.h>
#include <pwd.h>
#include <dirent.h>
char * get_cmd(char buff[],char * myargv[])
{
if(buff == NULL || myargv == NULL)
{
return NULL;
}
int i = 0;
char * s = strtok(buff," ");//对命令进行分割 例如ps -f这种
while( s!= NULL)
{
myargv[i++] = s;
s = strtok(NULL," ");
}
return myargv[0];//识别输入的命令 作出对应的举动
}
void printf_info() //这个函数的作用就是在执行mybash的时候前面那一行话
{
int id = getuid();//获取用户uid
char* s = "$";
if (id == 0)//当是管理员权限的时候 getuid()返回值是0
{
s = "#";
}
struct passwd * ptr =

最低0.47元/天 解锁文章
1513

被折叠的 条评论
为什么被折叠?



