问题
chdir can be used for constant character paths (it takes a const char *), but not for paths inputted by the user (since they have type char *). Is there any way around this?
回答1:
chdir can be used with arbitrary string. const modifier means that it will not modify your string.
回答2:
To expand on Roman Cheplyaka's answer, type qualifiers can always be added to pointer types, but not removed. This means that a function that takes a const char * parameter is really saying it can take either a char * or a const char * (which effectively means it is promising not to alter the contents of the string).
Similarly, a function that has a volatile char * parameter can take either a char * or a volatile char * as the actual argument, and a function that takes a const volatile char * parameter can take any of char *, const char *, volatile char *, or const volatile char *.
来源:https://stackoverflow.com/questions/3662627/how-to-change-the-working-directory-in-c