参考 linux中fcntl()、lockf、flock的区别 这三个函数的作用都是给文件加锁,那它们有什么区别呢? 首先flock和fcntl是系统调用,而lockf是库函数。lockf实际上是fcntl的封装,所以lockf和fcntl的底层实现是一样的,对文件加锁的效果也是一样的。后面分析不同 ...
分类:
系统相关 时间:
2017-01-15 20:19:44
阅读次数:
295
[a] 概念 建议锁:在遵循相同记录锁规则的进程间生效,通常用于保证某个程序自身多个进程间的数据一致性 强制锁:意在保证所有进程间的数据一致性,但不一定有效;如不能应对先 unlink 后建立同名副本的行为 [b] fcntl 操纵记录锁时,fcntl 的第三个参数是一个指向 flock 结构体的指 ...
分类:
其他好文 时间:
2016-12-19 21:31:50
阅读次数:
151
首先,我们来看看同步和异步。 在处理 IO 的时候,阻塞和非阻塞都是同步 IO。只有使用了特殊的 API 才是异步 IO。 接下来,我们来看看Linux下的三大同步IO多路复用函数 fcntl(fd, F_SETFL, O_NONBLOCK); //socket设为O_NONBLOCK,但是sele ...
分类:
其他好文 时间:
2016-12-12 20:13:54
阅读次数:
275
for example: #include <stdlib.h>#include <stdio.h>#include <wiringPi.h>#include <sys/types.h>#include <sys/stat.h>#include <fcntl.h>#include "linux/in ...
分类:
编程语言 时间:
2016-12-07 22:57:45
阅读次数:
270
打开串口 在Linux系统下,打开串口是通过使用标准的文件打开函数操作的。 #include <fcntl.h> /* 以读写的方式打开 */ int fd = open( "/dev/ttyUSB0",O_RDWR); 设置串口 所有对串口的操作都是通过结构体 struct termios 和 几 ...
分类:
系统相关 时间:
2016-11-26 22:45:28
阅读次数:
225
一、概念:一个程序在系统中只能启动一个实例,这样的程序称为单实例应用程序。例如Windows下的任务管理器、回收站、播放器、文件系统等等。 二、实现思想与方法: (1)核心思想:在当前系统中,只需要有能表示程序是否启动的标志,那么就可以利用它来实现单实例应用程序。 (2)具体步骤:每当程序启动的时候 ...
分类:
其他好文 时间:
2016-11-18 07:12:10
阅读次数:
187
引言 记录上锁是对读写锁的一种扩展,他可以用于有亲缘关系和无亲缘关系进程之间共享某个文件的读写。这中锁通常是在内核中维护的(与互斥锁和读写锁做比较)。 粒度:用于标记能被锁住的对象的大小。Posix记录上锁来说,粒度就是单个字节。 Posix fcntl 记录上锁 posix fcntl 记录上锁被 ...
分类:
其他好文 时间:
2016-11-05 14:44:05
阅读次数:
183
总的来说,flock函数只能锁定整个文件,无法锁定文件的某一区域。而fcntl可以利用struct flock结构体,来实现文件里部分区域锁定的操作。附:fcntl(文件描述词操作) 相关函数 open,flock表头文件 #include<unistd.h>#include<fcntl.h>定义函 ...
分类:
其他好文 时间:
2016-11-02 17:40:45
阅读次数:
163
在之前的定时器驱动程序中,我们发现在连续按下按键的时候,正常情况下应该是一次按下对应一次松开。而程序有时候会显示是两次按下,一次松开。这个问题是因为在按下的时候,因为是机械按键,所以电压信号会产生一定的波动,会让程序进行两次中断,如何解决这个问题呢? 我们可以在发生一次中断之后等待一段时间再去判断按 ...
分类:
系统相关 时间:
2016-10-27 10:12:28
阅读次数:
281
在GUI程序中使用printf函数: [cpp] view plain copy #include <io.h> #include <fcntl.h> void InitConsole() { int nRet= 0; FILE* fp; AllocConsole(); nRet= _open_os ...
分类:
编程语言 时间:
2016-10-27 07:36:32
阅读次数:
349