我的目标是编写一个c程序,它类似于linux的基本shell。除了换工作目录,我什么都能用。我试过为system()
输入字符串的cd
,但什么也没有发生。我也试过chdir("tokened string")
,也没有运气。有人有什么想法吗?这是我代码的一部分:
fgets(cmdStr, sizeof(cmdStr), stdin);
if( strncmp("quit", cmdStr, 4) == 0 || strncmp("Quit", cmdStr, 4) == 0 )
{
break;
}
else if( strncmp("cd", cmdStr, 2) == 0 )
{
char *token = strtok(cmdStr, " ");
token = strtok(NULL, " ");
chdir(token);
}
else
{
system(cmdStr);
}
}
有可能这样做吗?或者这是一个简单的例子,与孩子的壳不能做某些事情有关?
编辑:以上代码已完成。
最佳答案
fgets()
在'\n'
中保留后面的cmdstr
字符。
如果您键入cd foo
,您将调用chdir("foo\n")
,而不是chdir("foo")
。
关于c - 在C程序中的Linux Shell中更改工作目录,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/6920483/