J'essaie de faire la commande ioctl via le framework Mono, mais je ne trouve pas ce que je cherche. J'essaye d'envoyer la commande à une carte DVB qui a un module de noyau. J'espère que quelqu'un peut lier ou expliquer clairement comment cela peut être fait. Tout exemple avec Mono utilisant des modules du noyau serait utile je suppose.Utilisation de Linux ioctl avec Mono
Répondre
Mono ne contient pas de wrapper pour ioctl dans Mono.Unix, car les paramètres d'appel ioctl varient considérablement et un tel wrapper serait presque inutile. Vous devez déclarer un DllImport pour chaque ioctl dont vous avez besoin.
Vous n'avez probablement pas besoin d'une bibliothèque auxiliaire écrite en C, cependant, vous pourriez en avoir besoin pendant le développement pour extraire les valeurs réelles cachées derrière les différentes macros du préprocesseur C. Par exemple, pour développer en-tête C:
#define FE_GET_INFO _IOR('o', 61, struct dvb_frontend_info)
compiler et exécuter cette aide:
#include <linux/dvb/frontend.h>
#include <stdio.h>
int main()
{
printf("const int FE_GET_INFO = %d;\n", FE_GET_INFO);
return 0;
}
ioctl n'est pas pris en charge par Mono AFAIK. Trop spécifique au système d'exploitation et la liste des paramètres dépend de la demande réelle. Vous pouvez essayer DLLImport
Vous devez écrire une bibliothèque wrapper pour vos appels précis. Regardez comment Mono.Unix enveloppe les syscalls (google codesearch pour Mono.Unix Syscall.cs) pour avoir l'idée. Créez ensuite un wrapper pour chaque commande ioctl spécifique, qui utilise votre propre représentation des données. Comme l'a dit jitter - vous aurez besoin de DLLImport l'ioctl lui-même.
Vérifiez mon similar question, et une question plus tard sur le subject. Dans ce cas, j'essaie d'envelopper l'interface Videl4Linux, qui pourrait vous intéresser.
Je suggère vraiment ces lectures.
- 1. ioctl FIOREAD sur socket raw sous Linux
- 2. Mono linux et windows
- 3. Problème V4L avec l'appel ioctl VIDIOCGCAP
- 4. Exécution d'ASP.NET MVC sous Mono/Linux avec xsp
- 5. Nhibernate 2.0.1 avec mono
- 6. unlocked_ioctl vs ioctl normale
- 7. Lecture/écriture à partir de tubes nommés sous mono/Linux
- 8. Mono, objets sérialisables avec MarshalByRefObject
- 9. Sérialisation DateTime de Mono
- 10. Winforms pour Mono sur Mac, Linux et PC (Redux)
- 11. Performance: compilez VS, Exécuter en Mono sous Windows et Linux
- 12. Utilisation des assemblys de Microsoft dans Mono Runtime
- 13. Linux, Mono, bibliothèques partagées et symboles non résolus
- 14. ASP.NET Ajax avec Mono
- 15. Utilisation de clock_getres - newbie Linux C
- 16. Linux ioctl -> comment dire si IP actuel a été obtenu par dhcp
- 17. Performance mono
- 18. Bonjour OS avec C# & mono?
- 19. Obtenir essid via ioctl dans ruby
- 20. P/Invoke en Mono
- 21. Utilisation de diffstat avec subversion?
- 22. Mono-service sous Windows
- 23. Utilisation du logiciel flottant sur x86 linux
- 24. ibatis.net ou nhibernate sur mono
- 25. Exécution de fichiers PE dans ASP.Net sous Linux sans utiliser Mono
- 26. Pourquoi ne puis-je pas trouver System.Text.RegularExpressions lors de l'utilisation de Mono sous Linux?
- 27. Socket.BeginReceive Performance sur Mono
- 28. Différences portables .Net et MONO
- 29. encrypt config sections de web.config en mono
- 30. Travailler avec des périphériques USB en Mono