免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 2408 | 回复: 0
打印 上一主题 下一主题

[函数] ltrace跟踪tail命令的函数调用问题 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2006-12-30 16:02 |只看该作者 |倒序浏览
  1. $ltrace tail -2 a.sh
  2. __libc_start_main(0x804b1b0, 3, 0xbfe8a534, 0x804f000, 0x804eff0 <unfinished ...>
  3. setlocale(6, "")                                 = "zh_CN.UTF-8"
  4. bindtextdomain("coreutils", "/usr/share/locale") = "/usr/share/locale"
  5. textdomain("coreutils")                          = "coreutils"
  6. __cxa_atexit(0x804c840, 0, 0, 0x8052618, 0xbfe8a498) = 0
  7. getenv("_POSIX2_VERSION")                        = NULL
  8. __ctype_b_loc()                                  = 0xb7eee690
  9. __errno_location()                               = 0xb7eee68c
  10. __strtoull_internal(0xbfe8b83f, 0xbfe8a364, 10, 0, 0x804f311) = 2
  11. getopt_long(2, 0xbfe8a538, "c:n:fFqs:v", 0x8052420, NULL) = -1
  12. malloc(68)                                       = 0x9b4d8a8
  13. open64("a.sh", 0, 00)                            = 3
  14. __fxstat64(3, 3, 0xbfe88304)                     = 0
  15. lseek64(3, 0, 0, 1, 0)                           = 0
  16. lseek64(3, 0, 0, 2, 0)                           = 742
  17. lseek64(3, 0, 0, 0, 0x9b4d8ec)                   = 0
  18. read(3, "#!/bin/bash\n#seq 1 100|while rea"..., 742) = 742
  19. memrchr(0xbfe88364, 10, 742, 2, 0)               = 0xbfe88649
  20. memrchr(0xbfe88364, 10, 741, 2, 0)               = 0xbfe88648
  21. memrchr(0xbfe88364, 10, 740, 2, 0)               = 0xbfe8863f
  22. fwrite_unlocked("sleep 60\n\n", 1, 10, 0x466384c0sleep 60

  23. ) = 10
  24. read(3, "", 0)                                   = 0
  25. close(3)                                         = 0
  26. exit(0 <unfinished ...>
  27. __fpending(0x466384c0, 0x46639120, 0xbfe8a53c, 0xbfe8a358, 0x46566d2e) = 0
  28. fclose(0x466384c0)                               = 0
  29. +++ exited (status 0) +++
复制代码

大家请注意memrchr函数,此函数原型为
  1.        #include <string.h>

  2.        void *memchr(const void *s, int c, size_t n);

  3.        void *memrchr(const void *s, int c, size_t n);
复制代码

那么
  1. memrchr(0xbfe88364, 10, 740, 2, 0)
复制代码

最后后两个参数从何而来?又是什么用途呢?
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP