необъявленный идентификатор posix_fallocate() и fallocate() в macOS, clang 12.00

Я пытался использовать или posix_fallocate()в моей программе CPP, но мой компилятор продолжал говорить мне, что не может найти эту функцию. Поэтому я создал эту минимальную программу:

      #include <fcntl.h>
int main() {
    int fd = open("lol", O_RDWR|O_CREAT, 0666);
    if (fd < 0) return 1;
    return posix_fallocate(fd, 0, 400000);
}

Но когда я пытаюсь его скомпилировать, мой компилятор говорит мне:

      c++ -g -O2 -Wall -Wextra -std=c++2a    test.cc   -o test
test.cc:5:12: error: use of undeclared identifier 'posix_fallocate'
    return posix_fallocate(fd, 0, 400000);
           ^
1 error generated.
make: *** [test] Error 1

Как видите, я использую c++20. Я попробовал это на своем Mac с Catalina и clang. Он отлично работает в оболочке Linux, которую я пробовал.

Почему так и есть ли способ сделать fallocate()работать на Маке?

0 ответов

Другие вопросы по тегам