LINUX.ORG.RU

История изменений

Исправление cvs-255, (текущая версия) :

#include <unistd.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <sys/sysinfo.h>

int main(void)
{
        struct sysinfo si;

        sysinfo(&si);

        int size = si.freeram-10000000UL;
        char *m = malloc(size);
        printf("m = %p\n", m);

        memset(m, 0, size);

        int fid = fork();

        if (fid == 0)
        {
                printf("I'm a child\n");
                while(1);
        }
        else
        {
                printf("I'm a parent\nchild pid = %i\n", fid);
                usleep(100000UL);
//              if (fid > 0)
                        kill(fid, 9);
        }
        free(m);

        return 0;
}

Запускай от рута

Исходная версия cvs-255, :

#include <unistd.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <sys/sysinfo.h>

int main(void)
{
        struct sysinfo si;

        sysinfo(&si);

        int size = si.freeram-10000000UL;
        char *m = malloc(size);
        printf("m = %p\n", m);

        memset(m, 0, size);

        int fid = fork();

        if (fid == 0)
        {
                printf("I'm a child\n");
                while(1);
        }
        else
        {
                printf("I'm a parent\nchild pid = %i\n", fid);
                usleep(100000UL);
//              if (fid > 0)
                        kill(fid, 9);
        }
        free(m);

        return 0;
}