Ma question est la suivante: J'ai un logiciel en C++ fonctionnant dans un système Linux embarqué, le logiciel a une fonction pour exporter certaines données vers une clé USB, maintenant mon piège, certains utilisateurs ont essayé d'utiliser une clé USB dans une clé pour passer du mode lecture/écriture au mode lecture seule. Maintenant, j'ai besoin de savoir comment vérifier si l'appareil est en mode lecture seule pour afficher des commentaires à l'utilisateur dans mon application. Y at-il un appel système pour vérifier l'état en lecture seule avant de monter le périphérique?Comment découvrir qu'une clé USB est en mode lecture seule?
2
A
Répondre
4
La façon habituelle de gérer cela est d'essayer d'ouvrir un fichier en écriture, puis de vérifier si errno == EACCES
.
Toutefois, si vous devez vérifier au préalable, c'est
int on_readonly_fs(char const *path)
{
struct statvfs fsinfo;
while (statvfs(path, &fsinfo)) == -1)
if (errno != EINTR)
return -1;
return fsinfo.f_flag & ST_RDONLY;
}
Mais cela ne fonctionne que après montage du dispositif.
+1
Vous pouvez également analyser '/ proc/mounts' pour un drapeau" ro ". Ou à un niveau inférieur si vous connaissez le nom du périphérique contenant le système de fichiers que vous pouvez rechercher, par exemple. '/ sys/class/block/sda1 /' où vous trouverez un fichier 'ro' contenant un" 1 "si le périphérique est en lecture seule. –
Questions connexes
- 1. Pendrive en mode lecture seule
- 2. Démarrer une session en mode lecture seule
- 3. riche: extendedDataTable rendu en mode lecture seule
- 4. serveur Déployer Neo4j en mode lecture seule
- 5. Le mode lecture seule de Sharepoint est-il réellement en lecture seule?
- 6. MFMailComposeViewController par défaut en mode lecture seule
- 7. Le classeur Excel 'OFFLINE COPY' est en mode lecture seule
- 8. SqlServer Db en mode lecture seule?
- 9. Définir la clé lorsque le tampon est en lecture seule
- 10. Comment ouvrir GDI + Bitmap en mode lecture seule?
- 11. JPA/Comment récupérer une entité en mode lecture seule?
- 12. Quelle est la sécurité du mode lecture seule pour wordpress?
- 13. "CDbAuthManager.AuthAssignment" est en lecture seule
- 14. Aptana Studio 3 - Parcourir/mode lecture seule
- 15. Ouvrir en mode écriture fermer en lecture seule
- 16. App Engine SDK DevServer Mode lecture seule?
- 17. XMPP: Chat en mode multi-utilisateur en lecture seule
- 18. Changer le fichier en mode lecture seule en Python
- 19. silverlight spreadsheetgear WorkbookView mode lecture seule
- 20. Mode UMS USB sélectif
- 21. Table est « lecture seule »
- 22. impossible de basculer en mode lecture seule dans emacs
- 23. Excel VBA 2007 Enregistrer le classeur en mode lecture seule
- 24. UITextView dans UITableViewCell manquant dernière ligne en mode lecture seule
- 25. Détection d'une clé USB en Java
- 26. Lien de document Sharepoint en mode lecture seule
- 27. Ouverture du fichier en mode lecture seule dans l'éditeur Eclipse
- 28. Ouvrir une nouvelle fenêtre HTML en mode lecture seule
- 29. Android EditText. Visibilité du texte en mode lecture seule
- 30. CKEditor - créer des liens cliquables (en mode lecture seule)
Essayez d'écrire dessus ..? Normalement, ce message "périphérique en lecture seule" ou "impossible d'écrire le fichier" est affiché (par exemple découvert) * lorsque la tentative d'exportation/écriture se produit. Il y a aussi d'autres raisons pour lesquelles l'écriture pourrait échouer. Dans tous les cas, je pense qu'il y a une meilleure chance de vérifier l'état en lecture seule * après que le système de fichiers soit monté. –
Que voulez-vous dire par "avant de monter l'appareil"? Votre application est-elle responsable du montage de l'appareil? Pourquoi est-ce si? –