В Mac OSX Mojave 10.14.6 следующий простой код больше не работает:
#include <stdio.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>
#include <errno.h>
#include <string.h>
int main(int argc, char** argv)
{
int fd = open ("/dev/rdisk0", O_RDONLY);
if (fd == -1)
{
fprintf(stdout, "open(%s) error = %s\n", "/dev/rdisk0", strerror(errno));
fflush(stdout);
return 1;
}
return 0;
}
Это дает:
open(/dev/rdisk0) error = Operation not permitted
Это происходит даже при запуске исполняемого файла с использованием sudo
.
Этот код работал для 10.13 и более ранних версий.
Думая, что это может быть связано с SIP, я дал Терминалу и исполняемому файлу Full Disk Access
, но это не помогло.
Есть ли другой способ обойти эту проблему? Как мне открыть /dev/rdisk0
сейчас?
Заранее спасибо