自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

  • 博客(13)
  • 收藏
  • 关注

原创 关于Beginning Linux Programming 3ed

关于近两年来在我的博客里陆续发的一些关于Linux编程的文章是译自Wrox公司的<Beginning Linux Programming 3ed>一书,在此感谢朋友们的支持。另外需要说明的一点就是,记得07年的冬天我在长沙逛书店的时候似乎看到了这本书的中文译本,所以提醒朋友们,如果觉得这本书对自己有用,可以到书店买中文译本来看,想来中文译本会比我的翻译更为专业。算起来尝试翻译这本书

2009-08-25 19:00:00 1465 1

翻译 进程间通信应用-CD程序

CD数据库程序现在我们可以使用我们在这一章所了解的IPC工具来修改我们的CD数据库程序。我们可以使用三种IPC工具的多种不同组,但是因为我们需要传送的信息很少,直接使用消息队列实现请求的传递是一个很明显的选择。如果我们需要传递的数据量很大,我们可以考虑使用共享内存传递实际的数据,并且使用信号量或是消息来传递一个标记通知其他的进程在共享内存中有数据可用。消息队

2009-08-25 18:06:00 1098

翻译 进程间通信之消息队列

消息队列现在我们来讨论第三种也是最后一种System V IPV工具:消息队列。在许多方面看来,消息队列类似于有名管道,但是却没有与打开与关闭管道的复杂关联。然而,使用消息队列并没有解决我们使用有名管道所遇到的问题,例如管道上的阻塞。消息队列提供了一种在两个不相关的进程之间传递数据的简单高效的方法。与有名管道比较起来,消息队列的优点在独立于发送与接收进程,这减少了在打开与关

2009-08-24 23:33:00 4282 2

翻译 Linux进程间通信之信号量

第14章 信号量,共享内存与消息队列在这一章,我们将会讨论Unix发行版AT&T系统V.2所引入的进程通信工具集合。因为这些程序出现在相关的发行版本中并且具有类似的编程接口,他们通常被称之为IPC程序,或是更为通常的System V IPC。正如我们已经了解到的,他们绝不是进程之间通信的唯一方法,但是System V IPC通常用来指这些特殊的程序。在这一章,我们将会讨论下列内

2009-08-22 08:43:00 7856 2

原创 fglrx 9.8与kernel 2.6.30

Linux Kernel 2.6.30的发布已是很早之前的事情了,而且在其发布后不久就为了尝鲜在自己的机子上编译了2.6.30的内核,无奈fglrx 9.6与9.7都不对其进行支持,无法在新版本的内核下编译安装fglrx驱动,没有办法一直在2.6.29的内核下配合fglrx 9.5进行使用,因而在每次更新时都会期盼fglrx的更新,然而其更新版本都不能进行成功的编译,实是无奈啊!! 昨天进

2009-08-20 12:11:00 964

翻译 进程间通信(九)

管道下面是管道实现文件,pipe_imp.c,其中有客户端与服务器端函数。试验--管道实现头文件1 首先是#include:#include "cd_data.h"#include "cliserv.h"2 我们定义一些在此文件的其他函数中所需要的值:static int server_fd = -1;static pid_t myp

2009-08-15 10:49:00 745

翻译 进程间通信(八)

搜索数据库在CD关键字上的搜索比较复杂。函数的用户希望一旦调用就启动一个搜索。我们在第7章通过将在第一次调用上的*first_call_ptr设置为true并且函数返回第一个匹配结果来满足这种需求。在接下来的搜索函数调用中,*first_call_ptr设置为false,从而会返回更多的匹配,每次调用返回一个匹配结果。现在我们已经将程序分为两个进程,我们不能再允许搜索在服务器端

2009-08-11 23:25:00 1203 2

翻译 进程间通信(七)

CD数据库程序现在我们已经了解了我们可以如何使用有名管道来实现一个简单的客户端/服务器系统,我们可以重新查看我们的CD数据库程序并且进行相应的修改。我们同时组合了一些信号处理从而允许我们在进程被中断时进行一些清理动作。我们会使用我们前面的具有一个命令行接口的dbm版本,从而进可能直接的查看代码。在我们更为详细的讨论新版本的代码之前,让我们先编译这个程序。如果我们有由Web站点所

2009-08-09 10:11:00 1436

翻译 进程间通信(六)

读取与写入FIFO使用O_NONBLOCK模式会影响作用在FIFO上的read与write调用的行为。在一个空的阻塞FIFO(例如,没有使用O_NONBLOCK打开的)上的read调用将会等待直到有数据可以读取。相反,在非阻塞且没有数据的FIFO上进行read调用将会返回0字节。在一个完全阻塞的FIFO上的write调用将会等待直到数据可以写入。在一个不能全部接受所有将

2009-08-08 10:08:00 878

翻译 进程间通信(五)

有名管道:FIFO到目前为止,我们只是可以在两个相关的程序之间传递数据,也就是说,由一个共同的祖先进程启动的程序。通常这并不是十分方便,因为我们希望不相关的进程也可以交换数据。我们可以使用FIFO来实现这个操作,通常称之为有名管道。一个有名管道是在文件系统中作为名字存在的一个特殊的文件类型(记住,在Linux一切皆文件),但是行为类似于我们已经了解的无名管道。我们可以通

2009-08-04 12:20:00 1988 4

翻译 进程间通信(四)

父子进程我们的pipe调用探索的下一步就是使得子进程是与父进程不同的一个程序,而不是运行相同程序的另一个进程。我们可以使用exec调用来完成这个任务。这样做的一个困难就是通过exec执行的新进程需要知道访问哪一个文件描述符。在exec调用之后,就不再是这样的情况了,因为老进程已经被新的子进程所替代。我们可以通过向exec所执行的新进程传递文件描述符作为参数就可以解决这个问题。要

2009-08-03 12:37:00 1013

翻译 进程间通信(三)

管道调用我们已经了解了高层的popen函数,现在我们继续来了解低层的pipe函数。这个函数提供了一个在两个函数之间传递数据的方法,而不必调用shell来解释所请求的命令的。同时他也为我们提供了更多的数据读写控制。pipe函数的原型如下:#include int pipe(int file_descriptor[2]);pipe函数接受一个两个整数文件描述

2009-08-02 09:04:00 830

翻译 进程间通信(二)

传递更多的数据到目前为止我们所用的机制只是简单的在一个fread或是fwrite中发送或是接收全部的数据。有时我们也许以更小的尺寸发送数据,或是也许我们并不知道输出的大小。为了避免声明一个大的缓冲区,我们可以使用多个fread或是fwrite调用并分别处理这些数据。下面是一个程序,popen3.c,由一个管道中读取所有的数据。试验--由一个管道读取大量的数据

2009-08-01 13:00:00 1010

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除