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. Day4--Python--列表增删改查,元组,range

    # 一.列表# 能装东西的东西 列表中装的数据是没有限制的,大小基本上够用# 列表用[]表示# 有索引和切片 [start,end,step] ###增删改查 (重点) # 1.新增 # appent ...

  2. MVC知识点汇总

    一,MVC创建控制器,视图 1新建 ASP.NET MVC web应用程序项目,在Controllers文件夹下创建控制器,MVC 5 控制器,然后打开控制器,在所对应的控制器中会存在一个Action ...

  3. STM32L011D4 ----- 低功耗

    After resuming from STOP the clock configuration returns to its reset state (MSI, HSI16 or HSI16/4 u ...

  4. SVN YUM安装

    一,安装: yum install subversion 二,创建配置SVN仓库: 目录自定,我这是在/home下: #cd /home # mkdir svn #svnadmin create /h ...

  5. C#:TextBox数据绑定

    经常写用一个TextBox显示某个对象,然后编辑之后再保存的程序.以前都是在TextBox_TextChanged事件中修改对象的值,或者保存的时候再读取TextBox.Text属性保存对象的值.这样 ...

  6. Lock与synchronized的区别(浅谈)

    Lock是一个接口 synchronized是一个关键字 Lock用法:                                 synchronized用法:    lock.lock()  ...

  7. Spring_xml和注解混合方式开发

    1. spring核心配置文件: <?xml version="1.0" encoding="UTF-8"?> <beans xmlns=&q ...

  8. maven的安装与基本使用

    一.什么是maven,有什么用? Maven是一个项目构建和管理的工具,其主要服务于基于java平台的项目构建.依赖管理和项目信息管理.它包含了一个项目对象模型 (Project Object Mod ...

  9. 5、JPA-映射-单向多对一

    多个订单对应一个用户 实体类 Customer package com.jpa.yingshe; import javax.persistence.*; @Table(name = "JPA ...

  10. Jpush极光推送

    require 'jpush' class SidkiqJpushWorker include Sidekiq::Worker # args[0] msg : args[1] region_id ; ...