System V IPC shmat: Permission denied

Dieses Thema im Forum "C/C++" wurde erstellt von simonwiese, 20.11.2008.

  1. #1 simonwiese, 20.11.2008
    simonwiese

    simonwiese Grünschnabel

    Dabei seit:
    20.11.2008
    Beiträge:
    5
    Zustimmungen:
    0
    Hallo zusammen!

    Ich will mithilfe von System V IPC einen shared Memory Bereich anlegen. Leider bekomme ich immer ein "Permission denied" wenn ich den Prozess als normalen Benutzer laufen lassen will.

    Das Programm sieht im Grunde genommen wie folgt aus:

    Code:
    #include <iostream>
    using namespace std;
    #include <errno.h>
    #include <sys/types.h>
    #include <sys/ipc.h>
    #include <sys/shm.h>
    
    int main() {
    	
    	//generate magic key
    	key_t key = ftok("/tmp", 434);
    
    	cerr<<"Key: "<<(int)key<<endl;
    
    	int shID=shmget(key, sizeof(double)*6, IPC_CREAT | IPC_EXCL);
    
    	if (shID < 0) {
    		cerr<<"Couldn't get shmID: "<<strerror(errno)<<endl;
    	} else {
    		cerr<<"shID: "<<shID<<endl;
    		double *shm_angles= (double *)shmat(shID, NULL, SHM_R | SHM_W);
    
    		if (shm_angles == (double *)-1) {
    			cerr<<"Couldn't attach shared memory: "<<strerror(errno)<<endl;
    		}
    		shmctl(shID, IPC_RMID, 0);
    	}
    
    	
    
    	return 0;
    }
    
    Ausgabe sieht dann zB mal so aus:
    Key: 738287937
    shID: 360449
    Couldn't attach shared memory: Permission denied
    
    
    Problem ist das shmat(...) immer ein "Permission denied" wirft (außer man ist superuser..). Ich habs schon mit verschiedenen Flags versucht und auch schon bei google danach gesucht find aber keine Lösung.

    Weiß einer von euch wo mein Fehler ist oder warum ich nicht ausreichend rechte haben soll??

    Danke im Voraus!

    Simon


    PS: Meine Quellen:
    https://www-rz.uni-hohenheim.de/betriebssysteme/unix/books/galileocomputing_unix_guru/node393.html
    http://www.informatik.uni-osnabrueck.de/um/95/95.3/bischof_ipc/bischof_ipc.html
     
  2. Anzeige

    Schau dir mal diese Kategorie an. Dort findest du bestimmt etwas.
    Registrieren bzw. einloggen, um diese und auch andere Anzeigen zu deaktivieren
  3. #2 SkydiverBS, 25.11.2008
    SkydiverBS

    SkydiverBS Tripel-As

    Dabei seit:
    15.01.2005
    Beiträge:
    207
    Zustimmungen:
    0
    Ort:
    Freising
    Hallo Simon,

    du musst beim Aufruf von shmget noch die Berechtigungen für das shared memory-Segment angeben, dann sollte es funktionieren.

    Beispielsweise so, um dem Benutzer Lese- und Schreibzugriffe zu gewähren:
    Code:
    int shmid = shmget(key, size, IPC_CREAT | IPC_EXCL | 0600);
    
    Gruß,
    Philip
     
Thema:

System V IPC shmat: Permission denied

Die Seite wird geladen...

System V IPC shmat: Permission denied - Ähnliche Themen

  1. Systempartition um den Speicherplatz der zweiten Disk erweitern

    Systempartition um den Speicherplatz der zweiten Disk erweitern: Guten Tag liebe Leute Ich habe einen virtuellen Server mit 2 Disk a je 25GB. Nun möchte ich, das meine Hauptpartition um diese zusätzlichen 25GB...
  2. Debian VM Klonen und parallel betreiben? Systemanpassungen

    Debian VM Klonen und parallel betreiben? Systemanpassungen: Hallo, ich habe vor eine Debian Maschine als Prototyp aufzusetzen... (als vSphere VM).... Diese Maschine will ich dann x-mal klonen und in div....
  3. IT-Systemadministrator/in in Teilzeit oder freiberuflich

    IT-Systemadministrator/in in Teilzeit oder freiberuflich: Wir suchen ab sofort in Teilzeit (20 Std./Woche) oder freiberuflich eine/n IT-Systemadministrator/in. Ihr Aufgabengebiet: Administration,...
  4. Freies ERP-System Tryton in Version 4.0 erschienen

    Freies ERP-System Tryton in Version 4.0 erschienen: Das freie Warenwirtschaftssystem Tryton ist in Version 4.0 erschienen, die erstmals Python 3 nutzen kann. Für die Anwender kamen etliche neue...
  5. Richard Stallman erhält ACM-Preis für Softwaresysteme

    Richard Stallman erhält ACM-Preis für Softwaresysteme: Die Association for Computing Machinery hat GNU-Gründer Richard Stallman den Preis für Softwaresysteme 2015 zuerkannt. Stallman erhält den...