SK/processes/rlimit.c

33 lines
1.3 KiB
C
Raw Normal View History

2022-11-24 23:16:58 +01:00
/*
Pobranie i ustawienie wielkosci segmentu danych dla procesu. Polecenia getrlimit i setrlimit sluza do pobrania i ustawiania roznych limitow w systemie operacyjnym. Nie na wszystkich systemach operacyjnych program powoduje blad z powodu przekrocenia limitu segmentu danych dla procesu, efekt działania programu zalezy od konfiguracji systemu operacyjnego. Program ma problemy z poprawna praca na wszelkich emulatorach systemow typu uniksowego.
*/
#include<stdio.h>
#include<sys/resource.h>
#include<stdlib.h>
int main(int argc) {
struct rlimit pomoc;
char *p1, *p2;
getrlimit(RLIMIT_AS, &pomoc);
printf("soft: %llu, hard: %llu\n", pomoc.rlim_cur, pomoc.rlim_max);
pomoc.rlim_cur = 100;
if (argc == 1) {
setrlimit(RLIMIT_AS, &pomoc);
}
getrlimit(RLIMIT_AS, &pomoc);
printf("soft: %llu, hard: %llu\n", pomoc.rlim_cur, pomoc.rlim_max);
printf("Przydzielam pamiec dla zmiennej p1.\n");
if (!(p1 = (char *) malloc(5000))) {
perror("Brak pamieci dla zmiennej p1.\n");
return -1;
}
printf("Przydzielam pamiec dla zmiennej p2.\n");
if (!(p2 = (char *) malloc(7000))) {
perror("Brak pamieci dla zmiennej p2.\n");
return -1;
}
printf("Poprawnie zakonczylem przydzial pamieci.\n");
return 0;
}