Как изменить рабочий каталог в C? - PullRequest
0 голосов
/ 08 сентября 2010

chdir может использоваться для константных символьных путей (требуется const char *), но не для путей, введенных пользователем (поскольку они имеют тип char *). Есть ли способ обойти это?

Ответы [ 2 ]

8 голосов
/ 08 сентября 2010

chdir может использоваться с произвольной строкой.Модификатор const означает, что он не изменит вашу строку.

1 голос
/ 08 сентября 2010

Чтобы расширить Ответ Романа Чепляка , квалификаторы типов всегда могут быть добавлены к типам указателей, но не удалены. Это означает, что функция, которая принимает параметр const char *, на самом деле говорит, что может принимать либо char * , либо a const char * (что фактически означает, что она обещает не изменять содержимое строки) .

Аналогично, функция, имеющая параметр volatile char *, может принимать либо char *, либо volatile char * в качестве фактического аргумента, а функция, которая принимает параметр const volatile char *, может принимать любой из char *, const char *, volatile char * или const volatile char *.

...