Chinaunix

标题: C库函数和linux库函数的区别 [打印本页]

作者: AI0723    时间: 2012-10-24 14:36
标题: C库函数和linux库函数的区别
C库函数是我们安装C编程环境下带的库函数,linux库函数是放在libc中的,在系统调用中讲到,用户程序是通过调用库函数,库函数然后调用系统调用实现功能的,同时说到和在C编程环境下调用C库函数一样的
问题是:如printf函数,如果用系统调用实现,用到unistd.h头文件,可是我们在C编程环境下用 stdio.h这一个头文件,两者都能实现请问,编译器如何区分哪些头文件,库函数是属于C编译环境的,哪些属于linux系统的,两者是否有优劣或者优先级别?
作者: flyd1005    时间: 2012-10-25 16:51
info gcc
3.14 Options for Directory Search

作者: wsw1wsw2    时间: 2012-10-25 17:13
printf 可不是unistd.h提供的哦。
不管是printf, fprintf, puts等,最后落实到Linux系统调用的都是write,至于你程序链接的是哪个库,要看看gcc的include和library的search path。
作者: bensenq    时间: 2012-10-25 22:21
回复 1# AI0723

c标准函数和linux函数没有交集吧

   
作者: smalloc    时间: 2012-10-28 12:54
感觉差别就是一个没包装系统调用,另一个包装了。
作者: captivated    时间: 2012-10-30 22:48

系统调用那些头文件都是内核提供出来的。C库本身有没有调系统调用,如果调用了,就需要内核提供的头文件,如果没调用,那随便。
C库就是有没有调系统调用的问题而已。
C库是儿子,内核是爹。
至于头文件搜索路径,编译器要区分这个干神马?反正/usr/include就是要搜的。C库的放在这下面,内核提供的头文件也放在这下面,不过有的头文件又独立目录了。






欢迎光临 Chinaunix (http://bbs.chinaunix.net/) Powered by Discuz! X3.2