12 2008 档案

摘要:竞争锁现在我们已经了解了如何测试文件上已经存在的锁,下面我们来看一下当两个程序在文件的同一块区域竞争锁时会出现什么情况。我们将会使用我们的lock3程序在文件的第一个位置进行加锁操作,然而一个新的程序在同样的位置尝试加锁。要完成这个例子,我们需要添加一些解锁操作。试验--竞争锁下面是程序lock5.c,试图在文件中已被加锁的区域进行加锁操作,而不是测试文件不同部分的锁状态。1 在#include以及声明之后,打开一个文件描述符:#include <unistd.h>#include <stdlib.h>#include <stdio.h>#include & 阅读全文
posted @ 2008-12-28 21:21 jlins 阅读(199) 评论(0) 推荐(0) 编辑
摘要:锁区域创建锁文件对于资源的排他访问,例如串口,是相当合适的,但是对于访问大的共享文件就是太好了。假如我们拥有一个由一个程序写入的大文件,但是是由许多不同的程序进行持续更新的。当一个程序正在记录一些在较长的时间内所得到的数据,并且正在为其他的一些程序进行处理时就会出现这样的情况。这些正在处理的程序并不会等待日志程序结束--他们是连续运行的--所以他们需要一些合作的方法从而可以提供对于同一个文件的同时访问。我们可以通过锁住文件的一个区域来到达这种结果,这样只是文件的某一个区域被锁住,但是其他程序可以访问程序的其他部分。这称之为文件段(file-segment),或是文件区域(file-region 阅读全文
posted @ 2008-12-27 23:02 jlins 阅读(295) 评论(0) 推荐(0) 编辑
摘要:文件锁文件锁是多用户,多任务操作系统的重要一部分。程序经常需要共享数据,通常是通过文件,所以对于这些程序来说有一种可以建立文件控制的方法是十分重要的。这样文件就可以安全的进行更新,或者当一个程序在写入文件时,另一个程序会阻止自己试图由文件中读取。Linux有许多我们可以用于文件锁的特性。最简单的方法就是以原子方式创建文件锁的技术,从而当创建了这个锁以后可以阻止其他任何事情的发生。这样就赋予程序一种方法,从而可以创建单一的文件并且不可以被其他程序同时创建。第二种方法要更为高级;他允许程序加锁文件的一部分进行排他访问。有两种方法可以做到这种加锁方式。我们只会详细的讨论其中的一种,因为第二种方法很简 阅读全文
posted @ 2008-12-21 10:37 jlins 阅读(120) 评论(0) 推荐(0) 编辑
摘要:Null指针与MS-DOS不同,但是类似于新版本的Windows,现代的Linux系统会小心的处理读取或是写入由null指针所指向的地址,尽管实际的行为是实现相关的。试验--访问Null指针下面我们在memory5a.c程序中试一下当我们访问一个null指针时会发生什么情况:#include <unistd.h>#include <stdlib.h>#include <stdio.h>int main(){ char *some_memory = (char *)0; printf(“A read from null %s/n”, some_memory); 阅读全文
posted @ 2008-12-20 12:15 jlins 阅读(147) 评论(0) 推荐(0) 编辑

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