Chinaunix首页 | 论坛 | 博客
  • 博客访问: 18655
  • 博文数量: 4
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 67
  • 用 户 组: 普通用户
  • 注册时间: 2013-06-24 10:32
个人简介

喜欢自己做的事情,不喜欢强迫!

文章分类

全部博文(4)

文章存档

2013年(4)

我的朋友

分类: LINUX

2013-06-24 11:08:14

linux同一个进程下面的线程都是在同一个进程空间的,那么是否会存在越界访问的问题呢? 刚刚做了一个试验,答案是:存在越界问题。


点击(此处)折叠或打开

  1. [root@FC5 thread]# gcc -o hk hookpthread.c -lpthread;./hk;cat hookpthread.c
  2. &a:[b7f77464]-----a:[20]
  3. &b:[b7576464]
  4. hook-->&a:[20]
  5. &a:[b7f77464]-----a:[30]
  6. #include
  7. #include
  8. void * fun(void * i)
  9. {
  10. int a=20;
  11. printf("&a:[%x]-----a:[%d]\n", &a,a);
  12. sleep(1);
  13. printf("&a:[%x]-----a:[%d]\n", &a,a);
  14. pthread_exit(NULL);
  15. }
  16. void * hook(void * a)
  17. {
  18. int b=10;
  19. printf("&b:[%x]\n", &b);
  20. printf("hook-->&a:[%d]\n", *(&b+2622464));
  21. *(&b+2622464)=30;
  22. pthread_exit(NULL);
  23. }
  24. int main()
  25. {
  26. pthread_t pidfun,pidhook;
  27. pthread_create(&pidfun, NULL, fun, NULL);
  28. pthread_create(&pidhook, NULL, hook, NULL);
  29. sleep(2);
  30. return 0;
  31. }


阅读(977) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~