不灭的焱

革命尚未成功,同志仍须努力

作者:php-note.com  发布于:2017-10-18 17:14  分类:Linux_C  编辑

我用的是 cmake 编译,增加参数 -fgnu89-inline ,参考代码如下:

add_definitions(-fgnu89-inline)

参考:cmake参数 与 命令详解

 

作者:php-note.com  发布于:2017-08-02 14:25  分类:Linux_C  编辑

若子进程先于父进程结束时,父进程调用wait()函数和不调用wait()函数会产生两种不同的结果:

--> 如果父进程没有调用wait()和waitpid()函数,子进程就会进入僵死状态。

--> 如果父进程调用了wait()和waitpid()函数,就不会使子进程变为僵尸进程。

这是为什么呢?现在我们来深入学习wait()函数和waitpid()函数。

作者:php-note.com  发布于:2017-02-15 09:51  分类:Linux_C  编辑

DBProxy:是由美团点评公司技术工程部DBA团队(北京)开发维护的一个基于MySQL协议的数据中间层。它在奇虎360公司开源的Atlas基础上,修改了部分bug,并且添加了很多特性。

作者:php-note.com  发布于:2016-11-29 19:24  分类:Linux_C  编辑

所谓大端就是指高位值在内存中放低位地址,所谓小端是指低位值在内存中放低位地址。比如 0x12345678 在大端机上是 12345678,在小端机上是 78564312,而一个主机是大端还是小端要看CPU类型以及运行在上面的操作系统。同一款CPU在不同的操作系统使用的大小端情况是不同的。当然我们通常使用的 x86 + windows是小端。

作者:php-note.com  发布于:2016-11-29 19:23  分类:Linux_C  编辑

不同的CPU有不同的字节序类型,这些字节序是指 整数 在内存中保存的顺序,这个叫做 主机序

最常见的有两种:

1.Little endian:将低序字节存储在起始地址

作者:php-note.com  发布于:2016-10-16 10:25  分类:Linux_C  编辑
作者:php-note.com  发布于:2016-09-21 10:02  分类:Linux_C  编辑

1、 管道概述及相关API应用

1.1 管道相关的关键概念

管道是Linux支持的最初Unix IPC形式之一,具有以下特点:

  • 管道是半双工的,数据只能向一个方向流动;需要双方通信时,需要建立起两个管道;
  • 只能用于父子进程或者兄弟进程之间(具有亲缘关系的进程);
  • 单独构成一种独立的文件系统:管道对于管道两端的进程而言,就是一个文件,但它不是普通的文件,它不属于某种文件系统,而是自立门户,单独构成一种文件系统,并且只存在与内存中。
  • 数据的读出和写入:一个进程向管道中写的内容被管道另一端的进程读出。写入的内容每次都添加在管道缓冲区的末尾,并且每次都是从缓冲区的头部读出数据。
作者:php-note.com  发布于:2016-09-18 10:01  分类:Linux_C  编辑

待续

作者:php-note.com  发布于:2016-09-17 10:00  分类:Linux_C  编辑

Linux下的进程通信手段基本上是从Unix平台上的进程通信手段继承而来的。而对Unix发展做出重大贡献的两大主力AT&T的贝尔实验室及BSD(加州大学伯克利分校的伯克利软件发布中心)在进程间通信方面的侧重点有所不同。前者对Unix早期的进程间通信手段进行了系统的改进和扩充,形成了“system V IPC”,通信进程局限在单个计算机内;后者则跳过了该限制,形成了基于套接口(socket)的进程间通信机制。Linux则把两者继承了下来,如图示:

作者:php-note.com  发布于:2016-09-16 09:59  分类:Linux_C  编辑

一、简单回顾——什么是数据报套接字

socket,即套接字是一种通信机制,凭借这种机制,客户/服务器(即要进行通信的进程)系统的开发工作既可以在本地单机上进行,也可以跨网络进行。也就是说它可以让不在同一台计算机但通过网络连接计算机上的进程进行通信。也因为这样,套接字明确地将客户端和服务器区分开来。

相对于流套接字,数据报套接字的使用更为简单,它是由类型SOCK_DGRAM指定的,它不需要建立连接和维持一个连接,它们在AF_INET中通常是通过UDP/IP协议实现的。它对可以发送的数据的长度有限制,数据报作为一个单独的网络消息被传输,它可能会丢失、复制或错乱到达,UDP不是一个可靠的协议,但是它的速度比较高,因为它并一需要总是要建立和维持一个连接。