/* layout.c - The layout of virtual memory in a process */ #include #include #include extern uint etext,edata,end; const int a = 1; int b = 2; int main(int argc, char *argv[], char * const environ[]) { int j=4; int k; k = 7; printf("\t&etext = \t%p\n", &etext); printf("\t&main = \t%p\n", &main); printf("\t&edata = \t%p\n", &edata); printf("\t&end = \t%p\n", &end); printf("\t&a = \t%p\n", &a); printf("\t&b = \t%p\n", &b); printf("\t&j = \t%p\n", &j); printf("\t&k = \t%p\n", &k); printf("\targc = \t%d\n", argc); printf("\t&argc = \t%p\n", &argc); printf("\targv = \t%p\n", argv); printf("\t*argv = \t%p\n", *argv); printf("\tenviron = \t%p\n", environ); printf("\t*environ= \t%p\n", *environ); for (k=0; environ[k] != NULL; k++) printf("%d %s\n", k, environ[k]); return 0; }