#include <unistd.h>
#include <stdlib.h>
#include <stdio.h>
#include <sys/mman.h>
int main()
{
pid_t child_pid, pid;
int child_status;
char *db;
//set up shared memory structure
db = mmap(NULL, 20000, PROT_READ | PROT_WRITE,
MAP_SHARED | MAP_ANONYMOUS, -1, 0);
child_pid = fork();
if (child_pid == 0) {
} else {
//wait for child process to finish
do {
pid = wait(&child_status);
} while (pid != child_pid);
munmap(db, 20000); //fixed this
}
}
I2luY2x1ZGUgPHVuaXN0ZC5oPgojaW5jbHVkZSA8c3RkbGliLmg+CiNpbmNsdWRlIDxzdGRpby5oPgojaW5jbHVkZSA8c3lzL21tYW4uaD4KaW50IG1haW4oKQp7CglwaWRfdCBjaGlsZF9waWQsIHBpZDsKCWludCBjaGlsZF9zdGF0dXM7CgljaGFyICpkYjsKCi8vc2V0IHVwIHNoYXJlZCBtZW1vcnkgc3RydWN0dXJlCglkYiA9IG1tYXAoTlVMTCwgMjAwMDAsIFBST1RfUkVBRCB8IFBST1RfV1JJVEUsCgkJICBNQVBfU0hBUkVEIHwgTUFQX0FOT05ZTU9VUywgLTEsIDApOwoKCgljaGlsZF9waWQgPSBmb3JrKCk7CglpZiAoY2hpbGRfcGlkID09IDApIHsKCQlzdHJjcHkoZGIsICIgSGVsbG8iKTsKCgkJZXhpdCgwKTsKCgl9IGVsc2UgewoJCS8vd2FpdCBmb3IgY2hpbGQgcHJvY2VzcyB0byBmaW5pc2gKCgkJZG8gewoJCQlwaWQgPSB3YWl0KCZjaGlsZF9zdGF0dXMpOwoKCQl9IHdoaWxlIChwaWQgIT0gY2hpbGRfcGlkKTsKCgoKCQlwcmludGYoIiVzXG4iLCBkYik7CgkJbXVubWFwKGRiLCAyMDAwMCk7CS8vZml4ZWQgdGhpcwoKCX0KfQo=