printf是在libc库中么?
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库中么?的更多相关文章
- 动态库中的soname
soname( Short for shared object name) 其是应用程序加载dll 时候,其寻找共享库用的文件名.其格式为 lib + math+.so + ( major versi ...
- 如何让静态库中的可执行程序不调用的函数不链接进该可执行程序?(-ffunction-sections -Wl,--gc-sections)
关键词: -Wl,--gc-sections -ffunction-sections 链接 elf 库 有时我们会遇到这种情况,可执行程序需要链接一些静态库,但是静态库中的函数并没有全部使 ...
- c++函数库中一些实用的函数
有一些程序,虽然写起来不难,但是可能比较麻烦或容易出错,这时就可以用c++函数库里自带的一些实用的函数. 这里只记录一些不太常见的函数. ------------------------------- ...
- Lib作为“静态库”与“动态库”中的区别
Lib作为“静态库”与“动态库”中的区别 0. 前言: 什么是静态连接库: 静态库在链接阶段,会将汇编生成的目标文件.o与引用到的库一起链接打包到可执行文件中.因此对应的链接方式称为静态链接. 为什么 ...
- 【C】——动态库中函数的作用范围
如何生成动态库 net小伙 已经在此文中说明——[C]——如何生成静态库和动态库:接下来就要看看动态库中函数的作用范围: 首先我们使用命令 gcc -fPIC -shared -o libtest ...
- Golang调用windows下的dll动态库中的函数
Golang调用windows下的dll动态库中的函数 使用syscall调用. package main import ( "fmt" "syscall" & ...
- C标准库中atoi的一种可能的实现
为避免与标准库中的atoi产生歧义, 我将自己编写的函数命名为strToInt, 以下是示例代码 #include <stdio.h> int strToInt(const char *s ...
- 修改so库中的依赖名
修改so库中的依赖名 在ArchLinuxArm上有一些针对aarch64, arm, armeabi-v7a等Android常用架构的so库可以下载,有时候可以省去很多编译时间,且都是编译optim ...
- 【Linux开发】OpenCV在ARM-linux上的移植过程遇到的问题4---共享库中嵌套库带路径【已解决】
[Linux开发]OpenCV在ARM-linux上的移植过程遇到的问题4-共享库中嵌套库带路径[已解决] 标签:[Linux开发] 紧接着上一篇,我居然又尝试了一下编译opencv,主要是因为由于交 ...
随机推荐
- Day4--Python--列表增删改查,元组,range
# 一.列表# 能装东西的东西 列表中装的数据是没有限制的,大小基本上够用# 列表用[]表示# 有索引和切片 [start,end,step] ###增删改查 (重点) # 1.新增 # appent ...
- MVC知识点汇总
一,MVC创建控制器,视图 1新建 ASP.NET MVC web应用程序项目,在Controllers文件夹下创建控制器,MVC 5 控制器,然后打开控制器,在所对应的控制器中会存在一个Action ...
- STM32L011D4 ----- 低功耗
After resuming from STOP the clock configuration returns to its reset state (MSI, HSI16 or HSI16/4 u ...
- SVN YUM安装
一,安装: yum install subversion 二,创建配置SVN仓库: 目录自定,我这是在/home下: #cd /home # mkdir svn #svnadmin create /h ...
- C#:TextBox数据绑定
经常写用一个TextBox显示某个对象,然后编辑之后再保存的程序.以前都是在TextBox_TextChanged事件中修改对象的值,或者保存的时候再读取TextBox.Text属性保存对象的值.这样 ...
- Lock与synchronized的区别(浅谈)
Lock是一个接口 synchronized是一个关键字 Lock用法: synchronized用法: lock.lock() ...
- Spring_xml和注解混合方式开发
1. spring核心配置文件: <?xml version="1.0" encoding="UTF-8"?> <beans xmlns=&q ...
- maven的安装与基本使用
一.什么是maven,有什么用? Maven是一个项目构建和管理的工具,其主要服务于基于java平台的项目构建.依赖管理和项目信息管理.它包含了一个项目对象模型 (Project Object Mod ...
- 5、JPA-映射-单向多对一
多个订单对应一个用户 实体类 Customer package com.jpa.yingshe; import javax.persistence.*; @Table(name = "JPA ...
- Jpush极光推送
require 'jpush' class SidkiqJpushWorker include Sidekiq::Worker # args[0] msg : args[1] region_id ; ...