我正在用C语言编写UNIX shell。在尝试创建自己的cd
函数时,它可以正常工作,但是我无法访问其中包含空格的目录。
我试图像在bash或其他unix shell中一样将参数输入cd来访问带有空格的目录,但是它不起作用:
>>> cd some\ directory\ with\ spaces
>>> cd "some directory with spaces"
以下是cd
函数的代码:
if (command[1] == NULL) {
chdir(getenv("HOME"));
}
else
if (chdir(command[1]) == -1) {
printf("%s: no such directory\n", command[1]);
}
返回以下错误:
some: no such directory
如您所见,只有第一个单词被解析为参数/目录名称。
如何使程序正确解析空格并使用空格访问目录?