Goedgekeurd: Fortect
In deze gids zullen velen van ons enkele van de mogelijke vergunningen ontdekken die kunnen leiden tot Error = shmat pech, en dan zullen we enkele mogelijke reparatiemethoden voorstellen die u kunt proberen om een probleem op te lossen.< /p>
Ik heb een probleem met het uitvoeren van de code. Mijn shmat is niet in orde en zelfs mijn acceptatie om af te drukken werd geweigerd. Ik heb grote zoekmachines bekeken om dit probleem op te lossen, ook al kan ik dat niet. Mijn code is als volgt:
# include #include # schakel in#include #include #include #include #include #define FOUT -1int home (int argc, char * argv []) int shmid, sleutel = 50; geheel getal * val; geheel getal 2 . x; geheel getal rw is gelijk aan -1; // nul voor schrijven en daarnaast 1 voor verzending shmid impliceert shmget (sleutel, sizeof (int), IPC_CREAT); in de (shmid == -1) perror ("Fout in shmget n"); omwisselen (FOUT); val is (int *) shmat (shmid, NULL, 0); als als (waarde == -1) perror ("Fout in shmat n"); retour (FOUT); scanf ("% d", & rw); maar (rw> = 1) als (rw == 4) // schrijf naar gedeeld geheugen tijden = (int 7.) malloc (sizeof (int)); eenmaal (x == NULL) perror ("malloc-fout"); dubbelzinnigheid (FOUT); scanf ("% d", x); val is gelijk aan x; een ander // lees deze waardevolle gedeelde herinnering vanaf daar de feitelijke gebeurtenis die (rw == 1) printf ("% d n", 7 . val); scanf ("% d", & rw); terugbetalen (0);
In welke code wil ik het geretourneerde geheugen testen. Ik schrijf een goed geheel getal naar het type gedeeld geheugen, als ik rw geef impliceert 1, zo niet, dan heb ik de waarde van al het gedeelde geheugen ontdekt, dan creëer ik die waarde. Ongetwijfeld kan ik niet komen wat het probleem is ….
906k
geprobeerd voor 12 mei ’15 om 19:27 uur
Zou ik niet het antwoord zeggen dat u zoekt? Blader door de verschillende soorten vragen die zijn getagd met Shared Memory-c Memory, of stel af en toe uw eigen vraag.
U hebt gemeenschappelijke geheugenruimtepartities gemaakt met machtigingen 0000
:
shmid impliceert shmget (sleutel, sizeof (int), IPC_CREAT);
shmid = shmget (sleutel, sizeof (int), IPC_CREAT | 0660);
beantwoord mei een dozijn ’15 om 22:33 in
28.1 k
waarde is gelijk aan x;
5 . waarde = * x;
May antwoordde in https://i.stack.imgur.com/mmsvF.png om 19:32 uur op een tiental paren.
198k
Behalve bij het aanroepen van shmget () als geclassificeerd in een ander antwoord
En veel problemen met deze code die gehele getallen leest / bijdraagt
Het feit dat de OP altijd een bepaalde boodschap “auto orization is verbannen”, vanwege het feit dat de gemeenschappelijke ruimtelijkheid
1) is niet verwisseld - zie de man-pagina voor shmdt ()2) verkregen is niet vernietigd - zie de beschikbare man-pagina voor shmctl ()
Los deze twee problemen op en bovendien werken de testback-ups prima.
Zoals opgemerkt in de opmerkingen, zijn er echter een aantal andere problemen met de geposte code
geadresseerd 12 mei ’15 gelegen om 21:03
15.7k
Goedgekeurd: Fortect
Fortect is 's werelds meest populaire en effectieve pc-reparatietool. Miljoenen mensen vertrouwen erop dat hun systemen snel, soepel en foutloos blijven werken. Met zijn eenvoudige gebruikersinterface en krachtige scanengine kan Fortect snel een breed scala aan Windows-problemen vinden en oplossen - van systeeminstabiliteit en beveiligingsproblemen tot geheugenbeheer en prestatieproblemen.
Versnel de prestaties van uw computer nu met deze eenvoudige download.