Как изменить рабочий каталог в C?
chdir
может использоваться для константных путей к символам (требуется const char *
), но не для путей, введенных пользователем (так как они имеют тип char *
). Есть ли способ обойти это?
2 ответа
chdir
может использоваться с произвольной строкой. const
Модификатор означает, что он не изменит вашу строку.
Чтобы расширить ответ Романа Чепляка, классификаторы типов всегда можно добавлять к типам указателей, но не удалять. Это означает, что функция, которая принимает const char *
Параметр действительно говорит, что это может занять char *
или const char *
(что фактически означает, что он обещает не изменять содержимое строки).
Точно так же функция, которая имеет volatile char *
Параметр может принимать либо char *
или volatile char *
в качестве фактического аргумента, и функция, которая принимает const volatile char *
параметр может принимать любой из char *
, const char *
, volatile char *
, или же const volatile char *
,