思路:
所以要写一个shell,需要循环以下过程:
- 获取命令行
- 解析命令行
- 建立一个子进程(fork)
- 替换子进程(execvp)
- 父进程等待子进程退出(wait)
实现代码:
#include
#include
#include
#include
#include
#define MAX_CMD 1024
char command[MAX_CMD];
int do_face()
{
memset(command, 0x00, MAX_CMD);
printf("minishell$ ");
fflush(stdout);
if (scanf("%[^n]%*c", command) == 0) {
getchar();
return -1;
}
return 0;
}
char **do_服务器托管网parse(char *buff)
{
int argc = 0;
static char *argv[32];
char *ptr = buff;
while(*ptr != '') {
if (!isspace(*ptr)) {
argv[argc++] = ptr;
while((!isspace(*ptr)) && (*ptr) != '') {
ptr++;
}
}else {服务器托管网
while(isspace(*ptr)) {
*ptr = '';
ptr++;
}
}
}
argv[argc] = NULL;
return argv;
}
int do_exec(char *buff)
{
char **argv = {NULL};
int pid = fork();
if (pid == 0) {
argv = do_parse(buff);
if (argv[0] == NULL) {
exit(-1);
}
execvp(argv[0], argv);
}else {
waitpid(pid, NULL, 0);
}
return 0;
}
int main(int argc, char *argv[])
{
while(1) {
if (do_face()
以上就是本文的全部内容,如果对你有帮助,欢迎点赞收藏转发评论!
服务器托管,北京服务器托管,服务器租用 http://www.fwqtg.net
相关推荐: Android 圆形进度条ProgressBar实现固定进度
原文: Android 圆形进度条ProgressBar实现固定进度-Sta服务器托管网rs-One的杂货小窝 之前遇到一个问题,发现Android里的圆形进度条无法固定一个进度,记录一下解决方法 探究 假设我们在xml中这样写: 按照预料的,上面的我们的进度…