编程知识点

printf命令模仿C程序库(library)里的printf()库例程(库函数)(library
routine)。它几乎复制了
该函数的所有功能。不过在Shell层级的版本上,会有些差异。由于printf的行为是由POSIX
标准所定义,因此使用printf的脚本比使用echo移植性好。

当在源程序中使用到库函数printf时,先要用include命令将( )头文件包含进来。
(A)stdio.h (B)string.h
(C)math.h
(D)stdlib.h
Linux中程序如何调用printf等C库函数?
另外程序被加载时,load程序如何链接libc库中的printf函数呢
printf函数是在加载时动态链接libc.so库进行调用的

我知道printf的函数原型是在stdio.h这个文件里的,
printf这函数具体的代码是在哪里呢?C的标准库函数
glibc是GUN的C语言库函数,
是不是说所有的C语言的库函数都在这个glibc里面,在linux系统里,安装了glibc就相当于把glibc的源代码编译了,编译之后就应该是二进制文件
而stdio.h这个头文件里面有printf等有关输入输出的库函数的原型。
所有的c标准库,都被glibc实现了。下glibc代码,用grep
,cscope, ctags 找,都行。
find / -name "*.c" | xargs grep "printf"

时间: 2024-08-01 12:42:28

编程知识点的相关文章

Shell脚本编程知识点总结及范例

 一:关于语言 1)编译性语言 编译型语言多半运作于底层,所处理的是字节.整数.浮点数或其它及其机器层经的对象.处理过程为:源程序--预处理--编译--汇编--链接,编译性语言为静态语言. 2)解释性语言 解释性语言读入程序代码并将其转化为内部的形式加以执行.处理过程:解释性(文本文件)-解释器去读取并执行.解释性语言为动态语言. 二:基础 变量类型 linux脚本中的变量不需要事先声明,而是直接定义使用(这点不同于其他高级编程语言中变量的使用)bash变量类型分为本地变量和环境变量. 本地变量

linux命令:脚本编程知识点${#VARNAME} ${VARNAME#* } . FILENAME 读取文档内容

脚本编程知识点: * FILE=/usr/local/src TEST=${FILE#*/}:$TEST结果为usr/local/src, 以/为关键字,删除从左边数第一个/及关键字/左边的所有字符串. DEST=${FILE##*/}:$DEST结果为src,以/为关键字,删除最后一个关键字/及关键字/左边的所有字符串. 从左往右时,*号需在关键字左边 DOTEST=${FILE%/*}:$DOTEST结果为/usr/local,以/为关键字,删除从右边数第一个/及关键字/右边的所有字符串.

Java网络编程知识点(1)

如何将一个String对象转换成InputStream对象? ByteArrayInputStream inputStream = new ByteArrayInputStream(str.getBytes()); 如何替换掉网络URL里面的参数值? String baseURL = "http://sixweather.3gpk.net/SixWeather.aspx?city=%s"; String cityName = "武汉"; String resultU

linux学习之路之脚本编程知识点

脚本编程知识点 1.获取变量中字符的长度 ${#VARNAME} 2.变量赋值 ${parameter:-word}:如果parameter为空或者未定义,则整个表达式为word:否则表达式值为parameter ${parameter:+word}:如果parameter为空或者未定义,则整个表达式为空:如果parameter有值,则整个表达式为word ${parameter:=word}:如果parameter为空或者未定义,则整个表达式值为parameter:否则整个表达式值为word

JAVA测试编程知识点

JAVA测试编程会涉及的知识点: 1.      testNg框架 2.      http协议和HttpClient. 在依据http头进行不同数据解析: Transfer-Encoding:chunked 在chunked 为ture时接口分段传数据怎么解析处理 chunked 不为ture时接口测试已可以处理. Content-Encoding: gzip 接口数据压缩的怎么解析处理 结合Transfer-Encoding:chunked为ture时接口数据怎么解析处理 不同Content

java面向对象编程知识点总结

一:今天完成 上午详细了解了java面向对象编程的一些细节,记录如下. 1)类 是一种引用类型,包含一个签名和一个主体,主体是放在花括号里面的成员,成员包括字段和方法,还有构造方法.初始化程序和嵌套类型. 常用成员有四种:类字段.类方法.实例字段.实力方法. 其它引用类型还包括数组.接口.枚举和注解. 2)字段和方法 示例:一个简单的类和成员 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 public class Circle{

Matlab编程知识点

容易忘记的小知识点: Matlab程序换行(一个空格加上3个.即 ...然后直接下一行就可以继续写代码) Matlab下程序计时 如下:tic和toc可以在程序中使用多个,计算各个程序字块的运行时间.还可以嵌套使用... tic;%计时开始 %%%%%%%%%%% 程序 %%%%%%%%%%% toc;%计时结束 tic和toc可以嵌套使用,都是找最近的toc总是找最近的tic,类似于if end的配合,如果想直接输出运行时间,只要类似于 disp(['拷贝去冗余的数据共花费时间:',num2s

PHP核心编程知识点

一.PHP基本语法 PHP标记:一共有四种,只推荐使用第一种 语句结束符:分号 注释:行注释(//  #)和块注释(/*   */),注释的规范 二.常见的输出语句 print echo var_dump print_r printf 三.变量 变量的组成:变量名和变量值组成,变量名引用变量值 内存的组成:堆区.栈区.用户代码区,全局数据区(变量区.常量区.静态变量区),变量名在栈区,变量值是在变量区中 变量的基本语法:$ 变量的命名规则 可变变量:变量的名又可以用一个变量来代替 变量的基本操作

【Java TCP/IP Socket】Socket编程知识点总结

简介 1.协议相当于相互通信的程序间达成的一种约定,它规定了分组报文的结构.交换方式.包含的意义以及怎样对报文所包含的信息进行解析. 2.TCP/IP协议族有IP协议.TCP协议和UDP协议. 3.TCP协议和UDP协议使用的地址叫做端口号,用来区分同一主机上的不同应用程序.TCP协议和UDP协议也叫端到端传输协议,因为他们将数据从一个应用程序传输到另一个应用程序,而IP协议只是将数据从一个主机传输到另一个主机. 4.在TCP/IP协议中,有两部分信息用来确定一个指定的程序:互联网地址和端口号:

网络编程知识点剖析

一. C/S 架构: Client / Server 客户端 / 服务端    B/S 架构: Browser / Server 前端 / 服务端 二.网络编程通信流程. 网卡 mac地址 IP地址 子网掩码 网关 DNS服务器  (进行域名(domain name)和与之相对应的IP地址 (IP address)转换的服务器.) DHCP (自动分配IP)   NAT (Network Address Translation,网络地址转换) 端口 路由器   交换机 集线器 广播 单播 广播风