linux之flock函数锁文件】的更多相关文章

转载:http://blog.csdn.net/a_ran/article/details/43562429 int truncate(const char *path, off_t length); int ftruncate(int fd, off_t length); 将文件大小改变为参数length指定的大小,如果原来的文件大小比参数length大,则超过的部分会被删除,如果原来的文件大小比参数length小,则文件将被扩展, 与lseek系统调用类似,文件的扩展部分将以0填充.如果文件…
转自: https://www.cnblogs.com/kex1n/p/7100107.html linux文件锁flock   在多个进程同时操作同一份文件的过程中,很容易导致文件中的数据混乱,需要锁操作来保证数据的完整性,这里介绍的针对文件的锁,称之为“文件锁”-flock. flock,建议性锁,不具备强制性.一个进程使用flock将文件锁住,另一个进程可以直接操作正在被锁的文件,修改文件中的数据,原因在于flock只是用于检测文件是否被加锁,针对文件已经被加锁,另一个进程写入数据的情况,…
Linux文件锁flock 在多个进程同时操作同一份文件的过程中,很容易导致文件中的数据混乱,需要锁操作来保证数据的完整性,这里介绍的针对文件的锁,称之为“文件锁”-flock. flock,建议性锁,不具备强制性.一个进程使用flock将文件锁住,另一个进程可以直接操作正在被锁的文件,修改文件中的数据,原因在于flock只是用于检测文件是否被加锁,针对文件已经被加锁,另一个进程写入数据的情况,内核不会阻止这个进程的写入操作,也就是建议性锁的内核处理策略. flock主要三种操作类型: LOCK…
表头文件  #include<sys/file.h> 定义函数  int flock(int fd,int operation); 函数说明  flock()会依参数operation所指定的方式对参数fd所指的文件做各种锁定或解除锁定的动作.此函数只能锁定整个文件,无法锁定文件的某一区域. 参数  operation有下列四种情况: LOCK_SH 建立共享锁定.多个进程可同时对同一个文件作共享锁定. LOCK_EX 建立互斥锁定.一个文件同时只有一个互斥锁定. LOCK_UN 解除文件锁定…
表头文件  #include<sys/file.h> 定义函数  int flock(int fd,int operation); 函数说明  flock()会依參数operation所指定的方式对參数fd所指的文件做各种锁定或解除锁定的动作.此函数仅仅能锁定整个文件,无法锁定文件的某一区域. 參数  operation有下列四种情况: LOCK_SH 建立共享锁定.多个进程可同一时候对同一个文件作共享锁定. LOCK_EX 建立相互排斥锁定.一个文件同一时候仅仅有一个相互排斥锁定. LOCK…
在编写程序时,有时总是不记得所使用的函数在哪个库函数中.现在先把自己以前经常用到的函数头文件总结一下. 有不对的地方还请指教. 1,系统调用文件的操作函数 #inlclude <fcntl.h> int open(char *name,int how) 第二个参数,O_RDONLY O_WRONLY O_RDWRO_CREAT #include <unistd.h> int close(int fd) size_t read(int fd,void *buf, size_t cou…
dlopen()是一个强大的库函数.该函数将打开一个新库,并把它装入内存.该函数主要用来加载库中的符号,这些符号在编译的时候是不知道的.这种机制使得在系统中添加或者删除一个模块时,都不需要重新编译了.可以在自己的程序中使用 dlopen().dlopen() 在 dlfcn.h 中定义,并在 dl 库中实现.它需要两个参数:一个文件名和一个标志.文件名就是一个动态库so文件,标志指明是否立刻计算库的依赖性.如果设置为 RTLD_NOW 的话,则立刻计算:如果设置的是 RTLD_LAZY,则在需要…
转载于:http://blog.chinaunix.net/uid-10449864-id-2956854.html Linux中/proc目录下文件详解(一)/proc文件系统下的多种文件提供的系统信息不是针对某个特定进程的,而是能够在整个系统范围的上下文中使用.可以使用的文件随系统配置的变化而变化.命令procinfo能够显示基于其中某些文件的多种系统信息.以下详细描述/proc下的文件. /proc文件系统是一个伪文件系统,它只存在内存当中,而不占用外存空间.它以文件系统的方式为访问系统内…
  转载:http://www.sudu.cn/info/index.php?op=article&id=302529   Linux中/proc目录下文件详解(一) 声明:可以自由转载本文,但请务必保留本文的完整性. 作者:张子坚 email:zhangzijian@163.com 说明:本文所涉及示例均在fedora core3下得到. ------------------------------------------------------------------------------…
头文件目录中总共有32个.h头文件.其中主目录下有13个,asm子目录中有4个,linux子目录中有10个,sys子目录中有5个.这些头文件各自的功能如下: 1.主目录 <a.out.h>:a.out头文件,定义了a.out执行文件格式和一些宏.<const.h>:常数符号头文件,目前仅定义了i节点中i_mode字段的各标志位.<ctype.h>:字符类型头文件,定义了一些有关字符类型判断和转换的宏.<errno.h>:错误号头文件,包含系统中各种出错号.(…
Linux支持C语言中的标准I/O函数,同时它还提供了一套SUS标准的I/O库函数.和标准I/O不同,UNIX的I/O函数是不带缓冲的,即每个读写都调用内核中的一个系统调用.本篇总结UNIX的I/O并和标准I/O进行对比. 文件描述符 内核通过文件描述符引用打开的文件,它是一个非负整数.按惯例,shell中使用0与进程的标准输入关联,1与标准输出关联,2与标准错误输出关联.依照POSIX,这些幻数应替换为符号常量 STDIN_FILENO . STDOUT_FILENO .STDERR_FILE…
Linux下fork函数及pthread函数的总结 https://blog.csdn.net/wangdd_199326/article/details/76180514 fork Linux多进程编程中的可以使用fork函数来创建子进程.fork函数定义在头文件unistd.h中(uni表示unix,std当然是标准库,所以很好记),该函数的声明为pid_t fork(void)其中函数的返回值类型为pid_t,可以理解为一个整型,返回值具体为: 在父进程中,fork返回新创建的子进程的进程…
使用linux flock 文件锁实现任务锁定,解决冲突 格式: flock [-sxun][-w #] fd# flock [-sxon][-w #] file [-c] command flock --help flock (util-linux-ng 2.17.2) Usage: flock [-sxun][-w #] fd# flock [-sxon][-w #] file [-c] command... flock [-sxon][-w #] directory [-c] comman…
Linux常用系统函数 一.进程控制 fork 创建一个新进程clone 按指定条件创建子进程execve 运行可执行文件exit 中止进程_exit 立即中止当前进程getdtablesize 进程所能打开的最大文件数getpgid 获取指定进程组标识号setpgid 设置指定进程组标志号getpgrp 获取当前进程组标识号setpgrp 设置当前进程组标志号getpid 获取进程标识号getppid 获取父进程标识号getpriority 获取调度优先级setpriority 设置调度优先级…
I.Linux C 创建目录函数mkdir的mode设置问题 函数原型: #include <sys/stat.h> int mkdir(const char *path, mode_t mode); 参数: path是目录名 mode是目录权限 返回值: 返回0 表示成功, 返回 -1表示错误,并且会设置errno值. mode模式位: mode 表示新目录的权限,可以取以下值: S_IRUSRS_IREAD S_IWUSRS_IWRITES_IXUSRS_IEXECS_IRWXUThis…
出处:http://blog.chinaunix.net/uid-28458801-id-4630215.html     linux下syscall函数,SYS_gettid,SYS_tgkill 2014-11-18 12:12:23 分类: LINUX NAME              syscall - 间接系统调用 SYNOPSIS              #define _GNU_SOURCE               #include        #include     …
命令基本格式 (1)命令提示符 如下是命令行的命令提示符,以此为例,讲解含义. 其中: root 当前登录用户名 localhost 主机名 ~ 当前所在的目录(即家目录,用户登录的初始位置) # 超级用户的提示符 普通用户提示符为$ 注意:在Linux当中管理员账号是root,切记不是administrator (2)命令格式 Linux下的命令格式为: 命令 [选项] [参数] 注意:个别命令并不遵循此格式 当有多个选项时可以写在一起 下面举个例子,以查询目录中的内容的命令:ls,作为例子说…
某模块作为前台进程独立运行时,运行命令携带命令行参数:作为某平台下守护进程子进程运行时,需要将命令行参数固化在代码里.类似如下写法: char *argv[] = {"./DslDriver", "-t", "/bin/VdslModemSco.bin"}; int argc = sizeof(argv) / sizeof(argv[0]); 随后,调用basename函数(头文件为libgen.h)解析argv[0],即"./DslD…
flock和fcntl都有锁的功能,但他们还有一点小小的区别: 1.flock只能加全局锁,fcntl可以加全局锁也可以加局部锁. 2.当一个进程用flock给一个文件加锁时,用另一个进程再给这个文件加锁,它会阻塞或者也可以返回加锁失败(可以自己设置). 3.当一个进程用fcntl给一个文件加锁时,用另一个进程去读或写文件时必须先获取加锁的信息,然后在给这个文件加锁. 3.当给一个文件加fcntl的独占锁后,再给这个文件加flock的独占锁,其会进入阻塞状态. 4.当给一个文件加flock的独占…
原谅: http://blog.sina.com.cn/s/blog_8043547601017qk0.html 这几天调程序(嵌入式linux),发现程序有时就莫名其妙的死掉,每次都定位在程序中不同的system()函数,直接在shell下输入system()函数中调用的命令也都一切正常.就没理这个bug,以为是其他的代码影响到这个,或是内核驱动文件系统什么的异常导致,昨天有出现了这个问题,就随手百了一下度,问题出现了,很多人都说system()函数要慎用要少用要能不用则不用,system()…
漏洞名称: Linux kernel ‘qeth_snmp_command’函数缓冲区溢出漏洞 CNNVD编号: CNNVD-201311-423 发布时间: 2013-11-29 更新时间: 2013-11-29 危害等级: 中危   漏洞类型: 缓冲区溢出 威胁类型: 本地 CVE编号: CVE-2013-6381 Linux kernel是美国Linux基金会发布的操作系统Linux所使用的内核.         Linux kernel 3.12.1及之前的版本中的drivers/s39…
漏洞名称: Linux kernel ‘aac_send_raw_srb’函数输入验证漏洞 CNNVD编号: CNNVD-201311-422 发布时间: 2013-11-29 更新时间: 2013-11-29 危害等级: 中危   漏洞类型: 输入验证 威胁类型: 本地 CVE编号: CVE-2013-6380 Linux kernel是美国Linux基金会发布的操作系统Linux所使用的内核.         Linux kernel 3.12.1及之前的版本中的drivers/scsi/a…
漏洞名称: Linux kernel ‘lbs_debugfs_write’函数数字错误漏洞 CNNVD编号: CNNVD-201311-421 发布时间: 2013-11-29 更新时间: 2013-11-29 危害等级: 中危   漏洞类型: 数字错误 威胁类型: 本地 CVE编号: CVE-2013-6378 Linux kernel是美国Linux基金会发布的操作系统Linux所使用的内核.         Linux kernel 3.12.1及之前的版本中的drivers/net/w…
漏洞名称: Linux kernel ‘uio_mmap_physical’函数缓冲区溢出漏洞 CNNVD编号: CNNVD-201311-154 发布时间: 2013-11-13 更新时间: 2013-11-13 危害等级: 中危   漏洞类型: 缓冲区溢出 威胁类型: 本地 CVE编号: CVE-2013-6763 Linux kernel是美国Linux基金会发布的一款操作系统Linux所使用的内核.         Linux kernel 3.11.7及之前的版本中的drivers/u…
  一.使用方法: 二.基本原理: 三.总结 很多情况下开发者调测程序需要在Linux下获取具体的IO的状况,目前常用的IO观察工具用vmstat和iostat,具体功能上说当然是iostat更胜一筹,在IO统计上时间点上更具体精细.但二者都是在全局上看到IO,宏观上的数据对于判断IO到哪个文件上毫无帮助,这个时候block_dump的作用就显现出来了. 一.使用方法: 需要先停掉syslog功能,因为具体IO数据要通过printk输出,如果syslog存在,则会往message产生大量IO,干…
漏洞名称: Linux kernel get_prng_bytes函数数字错误漏洞 CNNVD编号: CNNVD-201310-142 发布时间: 2013-10-11 更新时间: 2013-10-11 危害等级: 中危   漏洞类型: 数字错误 威胁类型: 远程 CVE编号: CVE-2013-4345 Linux kernel是美国Linux基金会发布的一款操作系统Linux所使用的内核.         Linux kernel 3.11.4及之前的版本中的crypto/ansi_cprn…
这几天调程序(嵌入式linux),发现程序有时就莫名其妙的死掉,每次都定位在程序中不同的system()函数,直接在shell下输入system()函数中调用的命令也都一切正常.就没理这个bug,以为是其他的代码影响到这个,或是内核驱动文件系统什么的异常导致,昨天有出现了这个问题,就随手百了一下度,问题出现了,很多人都说system()函数要慎用要少用要能不用则不用,system()函数不稳定?  下面对system函数做一个简单的介绍:  头文件   #i nclude  定义函数   int…
什么是库   库文件是一些预先编译好的函数的集合,那些函数都是按照可再使用的原则编写的.它们通常由一组互相关联的用来完成某项常见工作的函数构成,从本质上来说库是一种可执行代码的二进制形式,可以被操作系统载入内存执行.   无论在Windows平台还是在Linux平台下都存在大量的库,但由于Windows和Linux的本质不同,因此二者的库的二进制是不兼容的.   库的分类   Windows下的库有两种:静态库(.lib)和动态链接库(.dll). Linux下的库有两种:静态库(.a)和共享库…
open函数的flag详解1 读写权限:O_RDONLY O_WRONLY O_RDWR (1)linux中文件有读写权限,我们在open打开文件时也可以附带一定的权限说明 (譬如O_RDONLY就表示以只读方式打开,O_WRONLY表示以只写方式打开, O_RDWR表示以可读可写方式打开) (2)当我们附带了权限后,打开的文件就只能按照这种权限来操作. 打开存在并有内容的文件时:O_APPEND.O_TRUNC (1)思考一个问题:当我们打开一个已经存在并且内部有内容的文件时会怎么样? 可能结…