libc中果然有很多的函数,使用nm看了一下,里面竟然还有reboot函数,汗!

使用grep,可以看到各种 printf 也都在这里头。

objdump是看函数的地址与函数名对应的,虽然也能证明printf在libc中,但是感觉有些大才小用哪。

使用objdump一下,比nm多出来一些信息,看来nm也可以把函数的地址打印出来的,呵呵。

[xiew@localhost lib]$ nm libc-2.3.2.so |grep printf
000e9210 t __argp_fmtstream_printf
00052040 W asprintf
00052040 T __asprintf
00052040 t __asprintf_internal
0004bf80 t buffered_vfprintf
00055ff0 t buffered_vfprintf
         U _dl_debug_printf@@GLIBC_PRIVATE
00052080 T dprintf
00051f50 T fprintf
00065ea0 W fwprintf
00065ea0 t __fwprintf
00052080 t __GI_dprintf
00051f50 t __GI_fprintf
0004c820 t __GI___printf_fp
00052000 t __GI_sprintf
00047690 t __GI_vfprintf
00051f50 W _IO_fprintf
0006a2d0 t _IO_obstack_printf
0006a1c0 t _IO_obstack_vprintf
00051f80 T _IO_printf
00052000 T _IO_sprintf
00069dc0 t _IO_vasprintf
00069f30 t _IO_vdprintf
00047690 T _IO_vfprintf
00047690 t _IO_vfprintf_internal
000520c0 t _IO_vfwprintf
0006a050 t _IO_vsnprintf
00064aa0 T _IO_vsprintf
00064aa0 t _IO_vsprintf_internal
00066070 t _IO_vswprintf
0006a2d0 W obstack_printf
0006a1c0 W obstack_vprintf
0004f160 T parse_printf_format
00051f80 T printf
001364c8 b __printf_arginfo_table
0004c820 T __printf_fp
0004fcd0 t __printf_fphex
00138c20 b __printf_function_table
00051660 T printf_size
00051f20 T printf_size_info
0004baf0 t printf_unknown
00055b10 t printf_unknown
0004f0d0 t __register_printf_function
0004f0d0 W register_printf_function
00051fc0 W snprintf
00051fc0 t __snprintf
00052000 T sprintf
00065ee0 T swprintf
00069dc0 W vasprintf
00069f30 W vdprintf
00047690 T vfprintf
000520c0 W vfwprintf
000520c0 t __vfwprintf
0004c7e0 T vprintf
0006a050 W vsnprintf
0006a050 W __vsnprintf
00064aa0 W vsprintf
00066070 W vswprintf
00066070 t __vswprintf
00065f20 T vwprintf
00065f60 T wprintf

---------------------
作者:csdnxw
来源:CSDN
原文:https://blog.csdn.net/csdnxw/article/details/1639640?utm_source=copy
版权声明:本文为博主原创文章,转载请附上博文链接!

以上提到了两个工具,有时间要了解,一个是nm,一个是

objdump

printf是在libc库中么?的更多相关文章

  1. 动态库中的soname

    soname( Short for shared object name) 其是应用程序加载dll 时候,其寻找共享库用的文件名.其格式为 lib + math+.so + ( major versi ...

  2. 如何让静态库中的可执行程序不调用的函数不链接进该可执行程序?(-ffunction-sections -Wl,--gc-sections)

    关键词: -Wl,--gc-sections   -ffunction-sections  链接  elf   库 有时我们会遇到这种情况,可执行程序需要链接一些静态库,但是静态库中的函数并没有全部使 ...

  3. c++函数库中一些实用的函数

    有一些程序,虽然写起来不难,但是可能比较麻烦或容易出错,这时就可以用c++函数库里自带的一些实用的函数. 这里只记录一些不太常见的函数. ------------------------------- ...

  4. Lib作为“静态库”与“动态库”中的区别

    Lib作为“静态库”与“动态库”中的区别 0. 前言: 什么是静态连接库: 静态库在链接阶段,会将汇编生成的目标文件.o与引用到的库一起链接打包到可执行文件中.因此对应的链接方式称为静态链接. 为什么 ...

  5. 【C】——动态库中函数的作用范围

    如何生成动态库 net小伙 已经在此文中说明——[C]——如何生成静态库和动态库:接下来就要看看动态库中函数的作用范围: 首先我们使用命令   gcc -fPIC -shared -o libtest ...

  6. Golang调用windows下的dll动态库中的函数

    Golang调用windows下的dll动态库中的函数 使用syscall调用. package main import ( "fmt" "syscall" & ...

  7. C标准库中atoi的一种可能的实现

    为避免与标准库中的atoi产生歧义, 我将自己编写的函数命名为strToInt, 以下是示例代码 #include <stdio.h> int strToInt(const char *s ...

  8. 修改so库中的依赖名

    修改so库中的依赖名 在ArchLinuxArm上有一些针对aarch64, arm, armeabi-v7a等Android常用架构的so库可以下载,有时候可以省去很多编译时间,且都是编译optim ...

  9. 【Linux开发】OpenCV在ARM-linux上的移植过程遇到的问题4---共享库中嵌套库带路径【已解决】

    [Linux开发]OpenCV在ARM-linux上的移植过程遇到的问题4-共享库中嵌套库带路径[已解决] 标签:[Linux开发] 紧接着上一篇,我居然又尝试了一下编译opencv,主要是因为由于交 ...

随机推荐

  1. 如何把dedecms数据生成json

    最近搞dede搞得头大,长话短说! 名称:json数据调用 功能:调用某个远程连接的json接口,方便同远程站点之间进行通信来调取内容 语法: {dede:json url='http://news/ ...

  2. php 在服务器端开启错误日志记录方法

    修改php.ini设置,或者通过方法 ini_set设置以下项即可 1.打开error_reporting设置: 如 error_reporting= E_ALL 2.  log_errors=On ...

  3. octave基本操作

    参考: https://blog.csdn.net/iszhenyu/article/details/78712228:  吴恩达机器学习视频: 在学习机器学习的过程中,免不了要跟MATLAB.Oct ...

  4. Python之偏函数

    学前知识储备: 函数在Python是第一类对象 (Python中一切皆对象). 第一类对象的特性: ----1.可以被引用 ----2.可以当做参数传入 ----3.可以当做函数返回值 ----4.可 ...

  5. SQL Server 经典案例

    1.先进先出 例1 WITH [ta] ([商品编号], [批次号], [库存数量]) AS ( UNION ALL UNION ALL UNION ALL ),[tb] ([商品编号], [订货数量 ...

  6. Java基础方法整理

    方法 9.1方法概述 方法就是用来完成解决某件事情或实现某个功能的办法 可以通过在程序代码中引用方法名称和所需的参数,实现在该程序中执行(或称调用)该方法.方法,一般都有一个返回值,用来作为事情的处理 ...

  7. python改文件名

    import os file_names = os.listdir('D:\\mobilefile\\_hd') for file_name in file_names : print(file_na ...

  8. docker 基础之私有仓库

    docker-registry 是官方提供的工具,可以用于构建私有的镜像仓库.安装运行 docker-registry容器 在安装了 Docker 后,可以通过获取官方 registry 镜像来运行. ...

  9. jquery validate 详解一

    原文:http://blog.sina.com.cn/s/blog_608475eb0100h3h1.html jQuery校验官网地址:http://bassistance.de/jquery-pl ...

  10. C#设计模式(1)——简单工厂模式

    1.什么是简单工厂 现实中的工厂负责生产产品,顾名思义,编程中的简单工厂就是一个生产对象的类,它的主要作用是创建具体的产品类实例.我们以一个生产鼠标为例来分析简单工厂的作用,鼠标有两种:戴尔鼠标和惠普 ...