необъявленный идентификатор 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()
работать на Маке?