Я написал свою собственную функцию find (). Когда я делаю:
./myown $HOME/Documents test.txt
Я получаю:
/Users/CJ/Documents/test/test.txt
/Users/CJ/Documents/test/test1/test.txt
/Users/CJ/Documents/test/test2/test.txt
Однако, когда я делаю:
./myown $HOME test.txt
Я получаю:
getcwd error
Мой код для getcwd находится здесь и находится во вспомогательной функции:
findit(*directory, *pattern){
...
if(getcwd(cwd, 2048+1) == NULL){
fprintf(stderr, "getcwd error\n");
exit(1);
}
...
}
Как я могу решить эту проблему?
РЕДАКТИРОВАТЬ: closedir()
решить эту проблему, но теперь есть еще одна проблема. Результат тот же, когда я делаю: ./myown $HOME/Documents test.txt
, но когда я поступаю иначе, я получаю: stat error
`
struct stat mode;
if(stat(entry->d_name, &mode) == -1){
fprintf(stderr, "stat error\n");
continue;
}`
Я не использовал статистическую ошибку где-либо еще в коде.
Это тоже может быть полезно, вот как я использовал open
DIR *dir
dir = opendir(".");
Ошибка в readdir ().