2010-09-07 27 views
0

chdir可用于常量字符路径(它需要const char *),但不适用于用户输入的路径(因为它们的类型为char *)。有没有办法解决?如何更改C中的工作目录?

+2

使用chdir()有什么问题?它肯定可以和用户提供的路径一起使用......你试过了吗?它失败了吗?怎么样?发布一些代码... – Juliano 2010-09-07 20:52:26

+0

进一步罗曼的回答:一般来说,函数参数的const限定符意味着该函数不会尝试修改您传递的内容,所以它*可以是一个字符串常量,而不是它*有*是一个常数。在'T const *'(对于任何类型的T)中,'const'基本上意味着“只读”。 – 2010-09-07 21:14:51

回答

8

chdir可以使用任意字符串。 const修饰符意味着它不会修改您的字符串。

1

若要扩大Roman Cheplyaka's answer,类型限定符可以始终为添加指针类型,但不会删除。这意味着一个采用const char *参数的函数实际上表示它可以采用char * a const char *(这实际上意味着它不会更改字符串的内容)。

类似地,具有volatile char *参数的函数可以采取任一个char *volatile char *作为实际参数,而这需要一个const volatile char *参数可以采取任何的char *const char *volatile char *,或const volatile char *的功能。