Welcome 微信登录
编程资源 图片资源库 蚂蚁家优选 PDF转换器

首页 / 操作系统 / Linux

Linux下进程间通信及同步

Linux下进程间通信及同步

Linux系统上运行有多个进程,其中许多都是独立运行。然而,有些进程必须相互合作以达成预期目的,因此彼此间需要通信和同步机制。读写磁盘文件中的信息是进程间通信的方法之一。可是,对许多程序来说,这种方法既慢又缺乏灵活性。因此,像所有现代UNIX实现那样,Linux也提供了丰富的进程间通信(IPC)机制,如下所示:信号(signal):用来表示事件的发生。管道和FIFO:用于在进程间传递数据。套接字:供同一台主机或是联网的不同主机上所运行的进程之间传递数据。文...
Linux下的静态库和共享库

Linux下的静态库和共享库

所谓目标库是这样的一种文件:将(通常是逻辑相关的)一组函数代码加以编译,并置于一个文件中,供其他应用程序调用。这一做法有利于程序的开发和维护。现代UNIX提供两种类型的对象库:静态库和共享库。静态库静态库是早期UNIX系统中唯一的一种目标库。本质上说,静态库是对已编译目标模块的一种结构化整合。要使用静态库中的函数,需要在创建程序的链接命令中指定相应的库。主程序会对静态库中隶属于各自目标模块的副本,将其复制到最终的可执行文件中,这就是所谓静态链接。对于所需库...
Linux内存映射

Linux内存映射

调用系统函数mmap()的进程,会在其虚拟地址空间中创建一个新的内存映射。映射分为两类:文件映射:将文件的部分区域映射入调用进程的虚拟内存。映射一旦完成,对文件映射内容的访问则转化为对相应内存区域的字节操作。映射页面会按需自动从文件中加载。相映成趣的是并无文件与之相对应的匿名映射,其映射页面的内容会被初始化为0.由某一进程所映射的内存可以与其他进程的映射共享。达成共享的方式有两种:一是两处进程都针对某一文件的相同部分加以映射,二是由fork()创建的子进程...
Linux下的进程详解

Linux下的进程详解

进程进程是正在执行的程序实例。执行程序时,内核会将程序代码载入虚拟内存,为程序变量分配空间,在内核中建立相应的数据结构,以记录与进程有关的各种信息(比如,进程ID、用户ID、组ID以及终止状态等)在内核看来,进程是一个个实体,内核必须在它们之间共享各种计算机资源。对于像内存这样的受限资源来说,内核一开始会为进程分配一定数量的资源,并在进程的生命周期内,统筹该进程和整个系统对资源的需求,对这一分配进行调整。程序终止时,内核会释放所有此类资源,供其他进程重新使...
2014阿里巴巴WEB前端实习生在线笔试题

2014阿里巴巴WEB前端实习生在线笔试题

2014年3月31日晚,我怀着略微忐忑的心情(第一次在线笔试^_^!!)进行了笔试,阿里巴巴的笔试题共有10道,几乎包含了Web前端开发的各个方面,有程序题、有叙述题,时间非常紧张,只完成了大概6道题。下面把遇到的题目跟大家分享一下!相关阅读:2014 阿里巴巴安全工程师实习生招聘笔试总结 http://www.linuxidc.com/Linux/2014-04/99916.htm1、<!doctype html><html> ...
C++ string类的隐式共享写时拷贝的实现及设计要点

C++ string类的隐式共享写时拷贝的实现及设计要点

字符串一种在程序中经常要使用到的数据结构,然而在C中却没有字符串这种类型。在C++中,为了方便字符串的使用,在STL中提供了一个string类。该类维护一个char指针,并封装和提供各种的字符串操作。一、为什么要实现隐式公享写时拷贝试想一下,如果我们要自己实现一个string类,最简单的方式是什么?就是让每一个string类的实例维护一个在内存中独立的字符数组,每个string对象各不相干。这样一个对象的任何变化都不会影响到其他的对象。这样做的好处就是处理...
正则表达式库 PCRE 简述

正则表达式库 PCRE 简述

如果问c++的标准库里最缺乏的功能,正则表达式估计能排进前3,尤其在web开发领域,没有正则表达式实在令人太难受了,ruby,php人家都自带啊。成熟的c/c++正则库不多,首选应该是boost中的正则库,但也意味着你要引入boost这个庞然大物,对于追求微内核的程序而言,有点过重,甚至很多C++开发人员也比较抵触:)在boost之外,比较有名的就是PCRE了,pcre是c实现的,可以在这里下载。网上有段示例代码,如下:#include <pcre....
Spring+iBatis框架下事务代码的编写示例

Spring+iBatis框架下事务代码的编写示例

最近在做项目的账号管理这一块儿的功能。每一项账号操作相关的功能,都要涉及到多张表的读写。这个时候自然联想到用数据库的事务进行操作。否则,一处发生异常,将导致脏数据的产生。ibatis+spring框架下事务的代码写法有两种方式:注解方式和声明事务起始点。需要的spring的配置文件如下:<bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSource...
Java执行Shell遇到的各种问题

Java执行Shell遇到的各种问题

1、判断子进程是否执行结束有的时候我们用java调用shell之后,之后的操作要在Process子进程正常执行结束的情况下才可以继续,所以我们需要判断Process进程什么时候终止。Process类提供了waitFor()方法。该方法导致当前线程等待,直到Process线程终止。Process.waitFor()是有一个int类型返回值的,当返回值为0的时候表Process进程正常终止。否则一般是脚本执行出错了(我遇到的一般是这种情况)。2、Process...
Android应用程序通过JNI调用驱动程序(友善Smart210)

Android应用程序通过JNI调用驱动程序(友善Smart210)

实现目标:写一个简单的测试smart210上LED的应用程序,应用程序通过JNI调用Android系统下的Linux内核中的LED的驱动程序,实现在应用程序上控制开发板上4个LED的目的。------------------------------------分割线 ------------------------------------这是我自己写的通过JNI调用Linux内核中的驱动程序来完成Android上层应用程序的代码,硬件开发平台式友善的sma...
Dom4j解析带有命名空间的XML文件

Dom4j解析带有命名空间的XML文件

今天我在解析KML文件的过程中,使用XPath表达式,可是返回的结果总是null,纠结了很久,后来通过查资料,发现是我的KML中有命名空间的缘故。首先,说明一些什么是KML,因为下面的例子中会用到KML。KML是Keyhole Markup Language的缩写,是一种基于XML 语法与格式的、用于描述和保存地理信息(如点、线、图像、多边形和模型等)的编码规范,可以被 Google Earth 和 Google Maps 识别并显示。Google Ear...
<< 3601 3602 3603 3604 3605 3606 3607 3608 3609 3610 >>