2010-07-15 6 views
0

J'ai fait une mémoire fichier mis en correspondance à l'aide MemoryMappedFile.CreateNew (mapName, capacité) de .net 4fichier mappé mémoire créé sur .net via python

Puis-je accéder à cette MMF par le mapName de CPython?

J'ai essayé comme ci-dessous.

import mmap 
map = mmap.mmap(-1, 0, mapName, 1) 

mais il renvoie WindowsError [erreur 87] indiquant que le paramètre est incorrect. J'utilise Windows Vista.

+0

Je pense que vous avez un mappage de mémoire très confus. –

+0

@Matt, je pense aussi que je suis confus. Mais j'ai fait un mmf dans la mémoire système en utilisant la fonction .net ci-dessus, et y accéder d'un autre processus (une autre application .net) efficacement. Donc, je devine juste qu'il peut être possible d'accéder à cette mémoire système à partir de python aussi, bcz les données partagées sont des données anciennes. –

Répondre

0

Je n'ai absolument aucune expérience avec C#, mais je vais essayer de répondre à votre question. CreateNew doit créer un mappage vers un fichier qui ne réside pas dans le système de fichiers. Notez qu'il ne s'agit en aucun cas d'une plateforme croisée. Sous Windows, le paramètre de variable de mmap.mmap doit vous permettre de mapper ces mappages marqués. Puisque le mapping n'est pas supporté par un fichier, le -1 pour fileno est correct aussi. La longueur de 0 obtiendra le mappage entier. Le problème réside alors dans l'accès. Il est mentionné que si vous ne fournissez pas le paramètre d'accès, vous obtiendrez un mappage d'écriture directe sur Windows. Vous pouvez essayer d'effectuer cette opération.

Si tout le reste échoue, essayez de revenir à l'utilisation d'un mappage de la mémoire de fichiers, il est plus portable et beaucoup plus commun. La classe C# MemoryMappedFile fournit la méthode CreateFromFile pour cela.

+0

Thnx Matt .. Il échoue toujours avec différentes options d'accès, mais j'ai compris que cette 'non-file-backed' est une fonction Windows uniquement. –

+0

Je veux dire, essayez de ne pas fournir le paramètre d'accès. Cela semble être ce que le doco suggère. –

Questions connexes