随笔分类 -  05.Linux-C

摘要:C10K问题: 网络服务在处理数以万计的客户端连接时,往往出现效率底下甚至完全瘫痪,这被成为C10K问题。 (C10K = connection 10 kilo 问题)。k 表示 kilo,即 1000 比如:kilometer(千米), kilogram(千克)。 非阻塞I/O,最关键的部分是 r 阅读全文
posted @ 2017-06-12 22:29 52php 阅读(590) 评论(0) 推荐(0) 编辑
摘要:Web框架 [荐]Kore:开源 C 语言 Web 框架 Raphters:A web framework for C ulfius:Web Framework for REST API in C, using JSON or not, with websockets or not, with st 阅读全文
posted @ 2017-02-15 14:23 52php 阅读(455) 评论(0) 推荐(0) 编辑
摘要:ASCII码大致可以分作三部分组成。 第一部分:非打印控制字符 ASCII表上的数字0–31分配给了控制字符,用于控制像打印机等一些外围设备。例如,12代表换页/新页功能。此命令指示打印机跳到下一页的开头。(参详ASCII码表中0-31) 第二部分:打印字符 数字 32–126 分配给了能在键盘上找 阅读全文
posted @ 2016-11-30 09:25 52php 阅读(721) 评论(0) 推荐(0) 编辑
摘要:所谓大端就是指高位值在内存中放低位地址,所谓小端是指低位值在内存中放低位地址。比如 0x12345678 在大端机上是 12345678,在小端机上是 78564312,而一个主机是大端还是小端要看CPU类型以及运行在上面的操作系统。同一款CPU在不同的操作系统使用的大小端情况是不同的。当然我们通常 阅读全文
posted @ 2016-11-29 18:08 52php 阅读(6147) 评论(0) 推荐(0) 编辑
摘要:不同的CPU有不同的字节序类型,这些字节序是指 整数 在内存中保存的顺序,这个叫做 主机序。 最常见的有两种: 1.Little endian:将低序字节存储在起始地址 2.Big endian:将高序字节存储在起始地址 LE little-endian(小端) 最符合人的思维的字节序; 地址低位存 阅读全文
posted @ 2016-11-29 16:45 52php 阅读(21436) 评论(1) 推荐(2) 编辑
摘要:http://geek.csdn.net/news/detail/114503 阅读全文
posted @ 2016-11-10 22:35 52php 阅读(566) 评论(0) 推荐(0) 编辑
摘要:https://www.zhihu.com/question/19732473 阅读全文
posted @ 2016-10-27 14:18 52php 阅读(739) 评论(0) 推荐(0) 编辑
摘要:一、混乱的声明——如何自然地理解 C 的声明? 通常,C 的声明 这样,使用“类型 变量名;”的形式进行书写。 可是,像“指向 int 的指针”类型的变量,却要像下面这样进行声明: 似乎这里声明了一个名为 *hoge_p 的变量,而实际上,这里声明的变量是 hoge_p,hoge_p 的类型是“指向 阅读全文
posted @ 2016-09-25 14:52 52php 阅读(578) 评论(0) 推荐(0) 编辑
摘要:序 Linux下的进程通信手段基本上是从Unix平台上的进程通信手段继承而来的。而对Unix发展做出重大贡献的两大主力AT&T的贝尔实验室及BSD(加州大学伯克利分校的伯克利软件发布中心)在进程间通信方面的侧重点有所不同。前者对Unix早期的进程间通信手段进行了系统的改进和扩充,形成了“system 阅读全文
posted @ 2016-09-17 10:11 52php 阅读(2154) 评论(0) 推荐(0) 编辑
摘要:前一篇文章,Linux进程间通信——使用流套接字介绍了一些有关socket(套接字)的一些基本内容,并讲解了流套接字的使用,这篇文章将会给大家讲讲,数据报套接字的使用。 一、简单回顾——什么是数据报套接字 socket,即套接字是一种通信机制,凭借这种机制,客户/服务器(即要进行通信的进程)系统的开 阅读全文
posted @ 2016-09-16 23:25 52php 阅读(4170) 评论(0) 推荐(0) 编辑
摘要:前面说到的进程间的通信,所通信的进程都是在同一台计算机上的,而使用socket进行通信的进程可以是同一台计算机的进程,也是可以是通过网络连接起来的不同计算机上的进程。通常我们使用socket进行网络编程,这里将会简单地讲述如何使用socket进行简单的网络编程。 一、什么是socket socket 阅读全文
posted @ 2016-09-14 16:02 52php 阅读(8144) 评论(0) 推荐(0) 编辑
摘要:下面来说说如何用不用消息队列来进行进程间的通信,消息队列与命名管道有很多相似之处。有关命名管道的更多内容可以参阅我的另一篇文章:Linux进程间通信 -- 使用命名管道 一、什么是消息队列 消息队列提供了一种从一个进程向另一个进程发送一个数据块的方法。 每个数据块都被认为含有一个类型,接收进程可以独 阅读全文
posted @ 2016-09-11 22:20 52php 阅读(49009) 评论(0) 推荐(9) 编辑
摘要:下面将讲解进程间通信的另一种方式,使用共享内存。 一、什么是共享内存 顾名思义,共享内存就是允许两个不相关的进程访问同一个逻辑内存。共享内存是在两个正在运行的进程之间共享和传递数据的一种非常有效的方式。不同进程之间共享的内存通常安排为同一段物理内存。进程可以将同一段共享内存连接到它们自己的地址空间中 阅读全文
posted @ 2016-09-11 12:06 52php 阅读(100643) 评论(7) 推荐(25) 编辑
摘要:这篇文章将讲述别一种进程间通信的机制——信号量。注意请不要把它与之前所说的信号混淆起来,信号与信号量是不同的两种事物。有关信号的更多内容,可以阅读我的另一篇文章:Linux进程间通信 -- 信号。下面就进入信号量的讲解。 一、什么是信号量 为了防止出现因多个程序同时访问一个共享资源而引发的一系列问题 阅读全文
posted @ 2016-09-08 00:17 52php 阅读(44122) 评论(3) 推荐(8) 编辑
摘要:在前一篇文章—— Linux进程间通信 -- 使用匿名管道 中,我们看到了如何使用匿名管道来在进程之间传递数据,同时也看到了这个方式的一个缺陷,就是这些进程都由一个共同的祖先进程启动,这给我们在不相关的的进程之间交换数据带来了不方便。这里将会介绍进程的另一种通信方式——命名管道,来解决不相关进程间的 阅读全文
posted @ 2016-09-04 20:56 52php 阅读(24650) 评论(0) 推荐(1) 编辑
摘要:在前面,介绍了一种进程间的通信方式:使用信号,我们创建通知事件,并通过它引起响应,但传递的信息只是一个信号值。这里将介绍另一种进程间通信的方式——匿名管道,通过它进程间可以交换更多有用的数据。 一、什么是管道 如果你使用过Linux的命令,那么对于管道这个名词你一定不会感觉到陌生,因为我们通常通过符 阅读全文
posted @ 2016-09-04 16:09 52php 阅读(8086) 评论(0) 推荐(0) 编辑
摘要:我们已经知道,我们可以通过信号来终止进程,也可以通过信号来在进程间进行通信,程序也可以通过指定信号的关联处理函数来改变信号的默认处理方式,也可以屏蔽某些信号,使其不能传递给进程。那么我们应该如何设定我们需要处理的信号,我们不需要处理哪些信号等问题呢?信号集函数就是帮助我们解决这些问题的。 有关Lin 阅读全文
posted @ 2016-08-28 21:52 52php 阅读(18639) 评论(0) 推荐(1) 编辑
摘要:一、什么是信号 用过Windows的我们都知道,当我们无法正常结束一个程序时,可以用任务管理器强制结束这个进程,但这其实是怎么实现的呢?同样的功能在Linux上是通过生成信号和捕获信号来实现的,运行中的进程捕获到这个信号然后作出一定的操作并最终被终止。 信号是UNIX和Linux系统响应某些条件而产 阅读全文
posted @ 2016-08-27 23:04 52php 阅读(18168) 评论(1) 推荐(7) 编辑
摘要:有时候,我们需要在自己的程序(进程)中启动另一个程序(进程)来帮助我们完成一些工作,那么我们需要怎么才能在自己的进程中启动其他的进程呢?在Linux中提供了不少的方法来实现这一点,下面就来介绍一个这些方法及它们之间的区别。 一、system()函数调用 system函数的原型为: #include 阅读全文
posted @ 2016-08-27 15:46 52php 阅读(10893) 评论(0) 推荐(0) 编辑
摘要:一、什么是文件锁定 对于锁这个字,大家一定不会陌生,因为我们生活中就存在着大量的锁,它们各个方面发挥着它的作用,现在世界中的锁的功能都可归结为一句话,就是阻止某些人做某些事,例如,门锁就是阻止除了屋主之外的人进入这个房子,你进入不到这个房子,也就不能使用房子里面的东西。 而因为程序经常需要共享数据, 阅读全文
posted @ 2016-08-27 08:22 52php 阅读(5059) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示