Я пытаюсь использовать chdir, чтобы изменить рабочий каталог моего процесса. Скажем, у меня есть каталог apple в моем текущем каталоге. Почему, когда я вводил apple в приглашении, возвращаемый результат равен -1? Это связано с тем, что когда я вхожу в яблоко, символ «\ n» также помещается в конец строки? Кроме того, в чем смысл изменения каталога, если я могу просто использовать переменную для ее сохранения?Как использовать системную функцию chdir
#include<stdio.h>
#include<string.h>
#include<errno.h>
#include<unistd.h>
int main(void){
char path[256];
fgets(path, 256, stdin);
printf("%s", path);
int result = chdir(path);
if(result != 0){
printf("%d\n", result);
}
}
Для 'chdir()' см. Здесь: http://man7.org/linux/man-pages/man2/chdir.2.html или введите 'man 2 chdir' на консоль. – alk
Ваша правильная информация о переменной «путь», содержащей новую строку. Существует несколько способов устранения новой строки. Я использую: 'char * newline = strstr (путь," \ n "); if (newline) {* newline = '\ 0';} ' – user3629249
Примечание: поскольку программа запускается в отдельном процессе, когда программа завершается, текущий рабочий каталог будет таким же, как и до запуска программы. – user3629249