Есть такой код:
#include <windows.h>
#include <stdio.h>
#include <string.h>
void main()
{
int i,l;
HANDLE s,h;
char *buffer;
char buf[]="abcdefghijklmno";
char tow[]="Text, writed to memory";
if ((h=CreateFileMapping((HANDLE)0xFFFFFFFF,NULL,PAGE_READWRITE,0,1024,"mem"))==NULL)
{
printf("Can't create file mapping\n");
}
printf("Handle: %d\n",h);
if ((buffer=MapViewOfFile(h,FILE_MAP_WRITE | FILE_MAP_READ,0,0,1024))==NULL)
{
printf("Can't MapViewOfFile\n");
}
s=CreateMutex(NULL,1,"sem");
Sleep(10000);
printf("Write to buffer first time\n");
for (i=0;i<strlen(tow)+1;i++) buffer[i]=tow[i];
if (ReleaseMutex(s)) {printf("Release mutex\n");}
printf("From buffer: %s\n",buffer);
printf("Write to buffer second time\n");
for (i=0;i<3;i++)
{
printf("Writed: %c\n",buf[i]);
buffer[i*400]=buf[i];
}
Sleep(10000);
CloseHandle(s);
CloseHandle(h);
}
При его выполнении вот такой результат:
Что нужно убрать/добавить чтобы код заработал?
GetLastError() выдает 6.