#includeint fcntl(fd,F_GETLK/F_SETLK/F_SETLKW,struct flock *flockptr);F_GETLK:测试flockptr描述的锁,是否和现有锁冲突。冲突:现有锁写入flockptr中;不冲突:flockptr不变。F_SETLK:试图获得读锁、...
分类:
其他好文 时间:
2015-07-12 17:22:25
阅读次数:
122
进程间的互斥,我们可以让这些进程共享某个内存区(mmap实现),然后在该共享内存区中使用某种类型的同步变量但是,fcntl记录上锁往往更容易使用。#include #include int fcntl(int fd, int cmd, ... /* struct flock *arg */ );st...
分类:
系统相关 时间:
2015-07-07 12:27:55
阅读次数:
137
记录锁的功能是:当一个进程正在读或修改文件的某个部分时,它可以阻止其它进程修改同一文件区。fcntl函数可以实现这一功能。#include int fcntl(int fd, int cmd, ... /* arg */ );对于记录锁,cmd是F_GETLK、F_SETLK或F_SETLKW,第三个参数是一个指向flock结构的指针:struct flock {...
分类:
其他好文 时间:
2015-07-02 19:34:57
阅读次数:
112
一、网络中进程之间如何通信? 本地的进程间通信(IPC)有很多种方式,但可以总结为下面4类:1、消息传递(管道、FIFO、消息队列)2、同步(互斥量、条件变量、读写锁、文件和写记录锁、信号量)3、共享内存(匿名的和具名的)4、远程过程调用(Solaris门和Sun RPC) 但这些都不是本文的主题!...
分类:
编程语言 时间:
2015-05-20 23:45:58
阅读次数:
296
第一部分:知识备忘1、进程间通信方式本地的进程间通信(IPC)有很多种方式,但可以总结为下面4类:消息传递(管道、FIFO、消息队列)同步(互斥量、条件变量、读写锁、文件和写记录锁、信号量)共享内存(匿名的和具名的)远程过程调用(Solaris门和Sun RPC)但这些都不是本文的主题!我们要讨论的...
分类:
其他好文 时间:
2015-04-02 22:34:30
阅读次数:
234
如果一个文件被两个人同时修改会出现什么结果呢?在很多unix系统中,该文件的最后状态取决于写该文件的最后一个进程。但是对于有些应用程序(例如数据库),进程有时需要确保它正在单独写一个文件。为了向进程提供这种功能,商用unix系统提供了记录锁机制。
记录锁的功能是:当一个进程正在读或修改文件的某个部分时,它可以组织其他进程修改同一文件区。对于unix系统而言,“记录”这个次是一种误会,因为...
分类:
其他好文 时间:
2015-04-02 15:15:07
阅读次数:
142
1 记录锁的功能:当一个进程正在读或修改文件的某一区域时,可以阻止其他进程修改同一文件区2 相关数据结构:struct flock{ short l_type;/* F_RDLCK,F_WRLCK,F_UNLCK */ off_t l_start;/* offset in bytes,re...
分类:
其他好文 时间:
2014-12-22 17:39:11
阅读次数:
126
引言:apue中提到文件记录锁的释放中的两条规则:当进程终止的时候,进程在文件上建立的记录锁会全部释放;当关闭文件,执行close(fd)函数的时候,进程释放描述符可以引用的文件上的任何一把锁。对于第一条规则的理解应该没有分歧。但对于第二条规则的理解,则会出现疑惑,执行close(fd)的时候,是仅...
分类:
其他好文 时间:
2014-08-21 20:56:44
阅读次数:
238
建立一个 Web
应用,分页浏览功能必不可少。这个问题是数据库处理中十分常见的问题。经典的数据分页方法是:ADO
纪录集分页法,也就是利用ADO自带的分页功能(利用游标)来实现分页。但这种分页方法仅适用于较小数据量的情形,因为游标本身有缺点:游标是存放在内存中,很费内存。游标一建立,就将相关的记录锁...
分类:
数据库 时间:
2014-06-07 08:36:31
阅读次数:
377