J'essaie d'obtenir la taille du secteur, en particulier pour que je puisse correctement dimensionner le tampon pour la lecture/écriture avec O_DIRECT.Obtenir la taille du secteur de disque sans l'autorisation du système de fichiers raw
Le code suivant fonctionne lorsque mon application est exécutée en tant que root:
int fd = open("/dev/xvda1", O_RDONLY|O_NONBLOCK);
size_t blockSize;
int rc = ioctl(fd, BLKSSZGET, &blockSize);
Comment puis-je obtenir la taille du secteur sans qu'il soit en tant que root?
Lisez-vous (avec 'O_DIRECT') la partition brute, ou un fichier sur un système de fichiers? –
Pourquoi demandez-vous? Cherchez-vous la meilleure performance d'IO, ou pour d'autres raisons? –
@BasileStarynkevitch Je suis en train de lire et d'écrire dans des fichiers, et j'utilise O_DIRECT pour les performances, car je ne lis ou n'écrit qu'un seul élément de 512 octets positionné aléatoirement. – Max