繁体   English   中英

制作自己的外壳

[英]Making my own shell

如您所知,这是家庭作业。 这将在C中实现。

首先,我创建了一些打印外壳程序的函数

printf("%s@cs345sh:~/%s ", getlogin(), get_working_directory());

之后,我继续使用“ |”标记输入行 作为定界符,因此我获得了以后将通过管道传递的命令。

char* instr;
instr = strtok(line, "|");
while (instr != NULL) {
    insert_arguments_list(instr); //This is a singly-linked list that holds the arguments.
    instr = strtok(NULL, "|");
}

所以现在,我必须创建一个char * const数组,这是我知道怎么做的事情之一,因为所有变量都必须事先声明,因为它是const,不是吗?

您能否提供一些有关如何从现在开始进行操作的提示?

为什么要使用execv? execl做同样的事情,并且期望一个const char *参数数组。

int execl(const char *path, const char *arg, ...);

否则,您将无法在运行时将地址分配给char * const。 这就是execl在这里的原因-这是一个方便的功能。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM