在C程序中的Linux Shell中更改工作目录
我的目标是编写一个类似于Linux的基本Shell的C程序。除了更改工作目录外,我一切正常。我已经尝试了system()
for输入字符串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程序中的Linux Shell中更改工作目录 的全部内容, 来源链接: utcz.com/qa/401809.html