syscall.c

来自「操作系统辅导与提高光盘源码」· C语言 代码 · 共 46 行

C
46
字号
#include <linux/unistd.h>#include <stdlib.h>#include <sys/types.h>#include <errno.h>_syscall2(int,getmm,pid_t,pid,unsigned long*,arr)void Usage();int main(int argc,char *argv[]){  int ret=0;  pid_t pid;  static unsigned long array[15];  if (argc!=2) {    Usage();    goto out;  }  pid=(pid_t)atoi(argv[1]);  ret=getmm(pid,array);  if (ret==-1) {	printf("syscall:Invalid pid or syscall error\n");	goto out;  }  printf("pid %d memory map:\n",pid);  printf("start_code:\t%x\n",array[0]);  printf("end_code:\t%x\n",array[1]);  printf("start_data:\t%x\n",array[2]);  printf("end_data:\t%x\n",array[3]);  printf("start_brk:\t%x\n",array[4]);  printf("brk:\t\t%x\n",array[5]);  printf("start_stack:\t%x\n",array[6]);  printf("arg_start:\t%x\n",array[7]);  printf("arg_end:\t%x\n",array[8]);  printf("env_start:\t%x\n",array[9]);  printf("env_end:\t%x\n",array[10]);out:  return ret;}void Usage(){  printf("Usage: ./syscall [pid]\n");}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?