/* * Alterando o tamanho do segmento de dados */ #include <sys/types.h> #include <sys/ipc.h> #include <sys/shm.h> #include <stdio.h> #include <stdlib.h> #include <unistd.h> char str_dados[10]; int main() { char str_pilha[10], *topo; int pagesize = getpagesize(); printf("Tamanho em bytes de um endereco: %lu\n", sizeof(char*)); printf("Tamanho em bytes de uma pagina: %d\n", pagesize); printf("str_pilha = %p\n", str_pilha); printf("main = %p\n", main); printf("str_dados = %p\n", str_dados); topo = sbrk(0); printf("Topo da area de dados = %p\n", topo); *(topo-1) = 0; if (sbrk(1024*pagesize) != -1) { topo = sbrk(0); printf("Topo da area de dados = %p\n", topo ); } *(topo-1) = 0; /* Segmentation fault? */ /*topo = 0; */ return 0; }