Я работаю над пользовательской версией cp, где аргументы представляют собой два каталога, а файлы из первого каталога копируются ко второму. Моя текущая проблема заключается в том, чтобы открыть файлы в первом каталоге. Когда я добираюсь до части «открытых файлов» кода, я получаю сообщение об ошибке, что нет файла, что не имеет смысла, потому что имя файла печатается в ошибке. Я что-то пропустил? Я думаю, что я включил достаточно кода.Не удается открыть файл в cp-программе
int main(int ac, char *av[]) {
int in_fd, out_fd, n_chars;
char buf[BUFFERSIZE];
struct stat sb;
DIR *copyFrom;
DIR *copyTo;
struct dirent *ep;
/* open dirs */
copyFrom = opendir(av[1]);
copyTo = opendir(av[2]);
while(ep = readdir(copyFrom))
{
/* open files */
if ((in_fd=open(ep->d_name, O_RDONLY)) == -1)
oops("Cannot open", ep->d_name);
if ((out_fd=creat(ep->d_name, COPYMODE)) == -1)
oops("Cannot create", ep->d_name);
/* copy files */
while ((n_chars = read(in_fd , buf, BUFFERSIZE)) > 0)
if (write(out_fd, buf, n_chars) != n_chars)
oops("Write error to ", av[2]);
if (n_chars == -1)
oops("Read error from ", av[1]);
/* close files */
if (close(in_fd) == -1 || close(out_fd) == -1)
oops("Error closing files","");
}
}
откуда ау [] получить определенный? – user3629249
Это в основном. Я отредактирую это. – uberpirate