2017-10-16 17:41
⁄ 工业·编程
⁄ 共 689字
ANSI C 是兼容各种操作系统的C标准。POSIX标准兼容了UNIX系统的C标准。
1.Glibc
glibc = GNU C Library
是GNU项(GNU Project)目,所实现的 C语言标准库(C standard library)。
目前,常见的桌面和服务器中的GNU/Linux类的系统中,都是用的这套C语言标准库。
其实现了常见的C库的函数,支持很多种系统平台,功能很全,但是也相对比较臃肿和庞大。
2.uClibc
一个小型的C语言标准库,主要用于嵌入式。
其最开始设计用于uClinux...
c标准, glibc阅读全文
2017-10-09 17:31
⁄ 工业·编程
⁄ 共 226字
C语言标准库 即ANSI C ,非常轻量,仅包含,数学函数,字符/字符串处理,io 等基本方面,处理目前的版本是c99
glibc库 即GNU c library,也是目前linux 平台的c 标准库,是 C语言标准库的超集,在其基础上增加了线程操作等扩展,其动态库位于/lib/libc.so.6,静态库位于/usr/lib/libc.a
gcc库 静态库:libgcc.a 动态库: libgcc_s.so 包含一些辅助运算(浮点运算,整数运算)的功能,以及实...
c标准, GCC, glibc阅读全文
2017-10-02 17:28
⁄ 工业·编程
⁄ 共 494字
C 标准主要由两部分组成,一部分描述C的语法,另一部分描述C标准库。C标准库定义了一组标准头文件,每个头文件中包含一些相关的函数、变量、类型声明和宏定义。要在一个平台上支持C语言,不仅要实现C编译器,还要实现C标准库,这样的实现才算符合C标准。不符合C标准的实现也是存在的,例如很多单片机的C 语言开发工具中只有C编译器而没有完整的C标准库.
在Linux平台上最广泛使用的C函数库是glibc,其中包括C标准库的实现,也包...
c标准, glibc阅读全文
2017-09-26 15:18
⁄ 工业·编程
⁄ 共 530字
最近开始复习和深入学习C和C++的知识,陆陆续续查了很多库函数的实现方式;最好的学习方式莫过于分析和学习经典的C和C++的库函数的实现方式了,这样自己以后使用起来也会更加的得心应手;由于相关资料其实还比较分散;故近期创建了连个博文分类,分别解析C的库函数(glibc经典源码分析)和C++的库函数(stdlibc++经典源码分析);先从常用的和简单的函数实现开始吧,希望能够学到不少经验;
1 glibc源码路径:
官方网址: http:...
GCC, glibc, libstdc阅读全文
2017-09-19 12:33
⁄ 工业·编程
⁄ 共 2993字
RTC(Real-time Communications),实时通信,是一个正在兴起的风口行业,经过短短一年的时间,已经有很多玩家进入了这个行业,最典型的应用就是直播连麦和实时音视频通信。但是,很多开发者对一些概念还是有混淆的,比如RTC与WebRTC,RTC与直播,RTC与IM。
一、RTC和WebRTC有什么区别?
实时通信(RTC)最容易和WebRTC混淆,实际上,二者不能划等号。
RTC从功能流程上来说,包含采集、编码、前后处理、传输、解码、缓冲、渲染...
WebRTC阅读全文
2017-09-12 06:43
⁄ 工业·编程
⁄ 共 6903字
我们知道文件都有文件名与数据,这在 Linux 上被分成两个部分:用户数据 (user data) 与元数据 (metadata)。用户数据,即文件数据块 (data block),数据块是记录文件真实内容的地方;而元数据则是文件的附加属性,如文件大小、创建时间、所有者等信息。在 Linux 中,元数据中的 inode 号(inode 是文件元数据的一部分但其并不包含文件名,inode 号即索引节点号)才是文件的唯一标识而非文件名。文件名仅是为了方便人们的记忆和...
linux, 区别阅读全文
2017-09-05 06:22
⁄ 工业·编程
⁄ 共 3687字
1、C10K问题的由来
大家都知道互联网的基础就是网络通信,早期的互联网可以说是一个小群体的集合。互联网还不够普及,用户也不多,一台服务器同时在线100个用户估计在当时已经算是大型应用了,所以并不存在什么 C10K 的难题。互联网的爆发期应该是在www网站,浏览器,雅虎出现后。最早的互联网称之为Web1.0,互联网大部分的使用场景是下载一个HTML页面,用户在浏览器中查看网页上的信息,这个时期也不存在C10K问题。
Web2.0时代...
网络编程阅读全文
2017-08-29 06:06
⁄ 工业·编程
⁄ 共 3626字
对笔者而言,这是一个挺新的领域,比较有意思。
一、解释名词:
NFV(Network Function Virtualization):通过使用x86等通用性硬件以及虚拟化技术,来承载很多功能的软件处理。从而降低网络昂贵的设备成本。 这项技术的目的在于软硬件的解耦合,让网络设备功能不再依赖于底层硬件,为啥呢,因为硬件研发周期长,贵啊。
DPDK(Intel Data Plane Development Kit):Intel数据面开发包,它是一组快速处理数据包的开发平台接口...
DPDK, 网络编程阅读全文
2017-08-22 06:14
⁄ 工业·编程
⁄ 共 2004字
一个大型的应用系统,往往需要众多进程协作,进程(Linux进程概念见附1)间通信的重要性显而易见。本文阐述了Linux环境下的几种主要进程 间通信手段,并针对每个通信手段关键技术环节给出详细实例。为达到阐明问题的目的,本文还对某些通信手段的内部实现机制进行了分析。
linux下的进程通信手段基本上是从Unix平台上的进程通信手段继承而来的。而对Unix发展做 出重大贡献的两大主力AT&a...
IPC, linux, 网络编程阅读全文
2017-08-15 06:09
⁄ 工业·编程
⁄ 共 236字
sysv是早期实践中弄出来的,posix是后来标准化之后的产物。这个导致了posix的接口设计更加严谨完善,但特殊情况下处理消息不及sysv灵活
posix ipc的那套接口做到了线程安全,sysv的就不见得了
如果你只考虑在linux上开发,就选posix那套就行了,还能和select/poll这些好东西一起用
如果还要考虑其他平台的兼容性,那就具体情况具体分析了,有些平台上有些库对posix实现的完整程度还不如sysv。
具体可参考《UNIX网络编程 卷2:进...
网络编程阅读全文