Хотя, как уже указывалось, system("cd xxx")
не изменит вашу текущую директорию приложения, это не совсем бесполезно.
Вы все еще можете использовать статус выхода системы, чтобы узнать, будет ли смена текущего каталога на указанную, успешной или нет.
Точно так же, если вы, как комплексные решения, вы также можете сделать то же самое с вилкой/Exec, либо с exec'ing /bin/sh -c cd xxx
или просто /bin/cd xxx
с операционкой, которые обеспечивают независимую cd
исполняемый файл.
Я бы, однако рекомендовать эту неоднозначность излишним быстрее эквивалентной access("xxx", X_OK|R_OK)
Примечание: Все POSIX совместимые операционные системы must обеспечить независимый кд исполняемый файл. Это по крайней мере в случае с Solaris, AIX, HP-UX и Mac OS/X.
Можете ли вы пройти через то, что представляет собой аргумент? – User
@User: Аргументы составляют исполняемую команду, и поскольку это функция с переменными аргументами, мы должны каким-то образом сигнализировать о конце аргументов, которые в этом случае выполняются пустым указателем типа 'const char * '. Таким образом, выполняемая команда: '/ bin/sh -c cd' –