Функция copyfile() в mac os возвращает ошибку "Not a directory"

Рейтинг: 0Ответов: 1Опубликовано: 20.11.2014

Доброго времени суток, уважаемые форумчане!
Помогите, пожалуйста разобраться в том, как работает функция. Почитала документацию на Apple Developer, да там столько всего, что глаза разбегаются, и не понятно, куда что передавать и где как что вызывается.
Адрес документации: https://developer.apple.com/library/mac/documentation/Darwin/Reference/ManPages/man3/copyfile.3.html

А вот код, который у меня получился, однако, сколько я не пробовала менять передаваемые флаги, она почему-то всегда возвращает -1, что согласно документации означает ошибку. Файл действительно не копируется.

string path = "/Users/user-name/Documents/My.app";
char destination[] = {"/Applications/My.app"};

copyfile_state_t state = copyfile_state_alloc();
int err = copyfile(path.c_str(), destination, state,  COPYFILE_RECURSIVE);
copyfile_state_free(state);

Ответы

▲ 1

Видимо нужны права суперпользователя.

Обновление

Ну тогда не будем гадать. Подобные функции выставляют специальный флаг в переменной errno. Ее значение можно распечатать (это целочисленная переменная). А можно и декодировать в строку функцией strerror. А там будет понятнее.