linux应用编程
xpy123
这个作者很懒,什么都没留下…
展开
-
Linux网络编程:基于TCP的程序开发
面向连接的TCP程序设计 基于TCP的程序开发分为服务器端和客户端两部分,常见的核心步骤和流程: 其实按照上面这个流程调用系统API确实可以完全实现应用层程序的开发,一点问题没有。可随着时间的推移,你会觉得这样子的开发毫无激情。为什么TCP的开发就要按照这样的流程来呢?而且一般出的问题几乎都不在这几个系统调用上,原因何在?当我们弄清网络开发的本质,协议栈的设计原转载 2015-04-22 16:24:27 · 399 阅读 · 0 评论 -
嵌入式linux环境下的视频采集(V4L2)
Video for Linux two(Video4Linux2)简称V4L2,是V4L的改进版。V4L2是linux操作系统下用于采集图片、视频和音频数据的API接口,配合适当的视频采集设备和相应的驱动程序,可以实现图片、视频、音频等的采集。在远程会议、可视电话、视频监控系统和嵌入式多媒体终端中都有广泛的应用。 一、Video for Linux two 在Linux下,所有转载 2015-06-04 11:42:21 · 1426 阅读 · 0 评论 -
3种编程方式实现交换变量a.b的值
1、通过中间变量#define swap1(a,b) \{ \int temp = a;\a = b; \b = a; \}2、加减运算#define swap2(a,b) \{ \a = a + b ;\b = a - b ;\a = a - b ;\}3、异或运行#define swap3(a,b) \{原创 2015-05-05 18:55:50 · 1765 阅读 · 0 评论 -
彻底搞清值传递和地址传递
1. 考题一:程序代码如下:void Exchg1(int x, int y) { int tmp; tmp=x; x=y; y=tmp; printf(“x=%d,y=%d/n”,x,y)}void main(){ int a=4,b=6; Exchg1 (a,b) ; printf(“a=%d,b=%d/n”,a,b)}转载 2015-05-05 00:22:59 · 348 阅读 · 0 评论 -
Linux守护进程的编程实现
Linux 守护进程的编程方法 守护进程(Daemon)是运行在后台的一种特殊进程。它独立于控制终端并且周期性地执行某种任务或等待处理某些发生的事件。守护进程是一种很有用的进程。Linux的大多数服务器就是用守护进程实现的。比如,Internet服务器inetd,Web服务器httpd等。同时,守护进程完成许多系统任务。比如,作业规划进程crond,打印进程lpd等。 守护进程的编程本转载 2015-04-28 16:33:46 · 293 阅读 · 0 评论 -
多线程程序设计
一、线程理论基础1. 多线程线程(thread)技术早在60年代就被提出,但真正应用多线程到操作系统中去,是在80年代中期,solaris是这方面的佼佼者。传统的Unix也支持线程的概念,但是在一个进程(process)中只允许有一个线程,这样多线程就意味着多进程。现在,多线程技术已经被许多操作系统所支持,包括Windows/NT、Linux。2. 为什么有了进程,还要引入转载 2015-04-22 00:14:09 · 389 阅读 · 0 评论 -
进程间通讯----共享内存
共享内存 共享内存是被多个进程共享的一部分物理内存。共享内存是进程间共享数据的一种最快的方法,一个进程向共享内存区域写入了数据,共享这个内存区域的所有进程就可以立刻看到其中的内容。原理图如下:共享内存的实现分为两个步骤:一、 创建共享内存,使用shmget函数。二、 映射共享内存,将这段创建的共享内存映射到具体的进程空间去,使用shmat函数。转载 2015-04-21 18:40:45 · 387 阅读 · 0 评论 -
Linux进程间通信——使用消息队列
下面来说说如何用不用消息队列来进行进程间的通信,消息队列与命名管道有很多相似之处。有关命名管道的更多内容可以参阅我的另一篇文章:Linux进程间通信——使用命名管道一、什么是消息队列消息队列提供了一种从一个进程向另一个进程发送一个数据块的方法。 每个数据块都被认为含有一个类型,接收进程可以独立地接收含有不同类型的数据结构。我们可以通过发送消息来避免命名管道的同步和阻塞转载 2015-04-21 19:44:56 · 270 阅读 · 0 评论 -
信号量--进程同步编程
1.信号量机制信号量机制即利用pv操作来对信号量进行处理。什么是信号量?信号量(semaphore)的数据结构为一个值和一个指针,指针指向等待该信号量的下一个进程。信号量的值与相应资源的使用情况有关。当它的值大于0时,表示当前可用资源的数量;当它的值小于0时,其绝对值表示等待使用该资源的进程个数。注意,信号量的值仅能由PV操作来改变。转载 2015-04-21 12:46:38 · 625 阅读 · 0 评论 -
进程间通信--信号量详解及编程实例
信号量概述信号量定义:它是一个特殊变量,只允许对它进行等待和发送信号这两种操作。P(信号量变量sv):等待。如果sv大于0,减小sv。如果sv为0,挂起这个进程的执行。V(信号量变量sv):发送信号。如果有进程被挂起等待sv,使其恢复执行。如果没有进行被挂起等待sv,增加sv。PV操作伪代码[cpp] view plaincopypr转载 2015-04-21 11:24:23 · 355 阅读 · 0 评论 -
管道通信
什么是管道? 管道是单向的、先进先出的,它把一个进程的输出和另一个进程的输入连接在一起。一个进程(写进程)在管道的尾部写入数据,另一个进程(读进程)从管道的头部读出数据。管道的分类 管道包括无名管道和命名管道两种,前者用于父进程和子进程间的通信,后者可用于运行于同一系统中的任意两个进程间的通信。无名管道的创建 无名管道由pi转载 2015-04-20 22:46:23 · 453 阅读 · 0 评论 -
信号通讯
信号(signal)机制是Unix系统中最为古老的进程间通信机制,很多条件可以产生一个信号:1、当用户按某些按键时,产生信号。2、硬件异常产生信号:除数为0、无效的存储访问等等。这些情况通常由硬件检测到,将其通知内核,然后内核产生适当的信号通知进程,例如,内核对正访问一个无效存储区的进程产生一个SIGSEGV信号。3、进程用kill函数将信号发送给另一个进程。4、用转载 2015-04-20 22:57:09 · 415 阅读 · 0 评论 -
Linux下tcp并发服务器的几种设计的模式套路
在做网络服务的时候tcp并发服务端程序的编写必不可少。tcp并发通常有几种固定的设计模式套路,他们各有优点,也各有应用之处。下面就简单的讨论下这几种模式的差异: 1、 单进程,单线程模式 在accept之后,就开始在这一个连接连接上的数据收接收,收到之后处理,发送,不再接收新的连接,除非这个连接的处理结束。 优点: 简单。转载 2015-04-24 15:17:17 · 377 阅读 · 0 评论 -
LINUX环境并发服务器的三种实现模型
服务器设计技术有很多,按使用的协议来分有TCP服务器和UDP服务器。按处理方式来分有循环服务器和并发服务器。1 循环服务器与并发服务器模型在网络程序里面,一般来说都是许多客户对应一个服务器,为了处理客户的请求,对服务端的程序就提出了特殊的要求。目前最常用的服务器模型有:·循环服务器:服务器在同一时刻只能响应一个客户端的请求·并发服务器:服务器在同一时刻可以响应多个客户端的请求转载 2015-06-27 15:16:16 · 399 阅读 · 0 评论