Linux C -> flock -> 上锁或解锁
------------------------------------------------------------------------
解释:
如果给当前文件加上独占锁,则其它程序进程在此文件未解锁前无法使用该文件
int
out;
char
buffer[100]="abcdedffsdfsa";
out=open("/aaaa",O_RDWR|O_CREAT,S_IRUSR);
flock(out,LOCK_EX);
write(out,buffer,sizeof(buffer));
out=open("/aaaa",O_RDWR|O_CREAT,S_IRUSR);
read(out,buffer,100);
printf("%s\n",buffer);
sleep(100);
close(out);
------------------------------------------------------------------------
#include
int flock(int fd,int operation);
此调用可将文件描述符fd所对应的文件上锁或解锁
参数operation用于表示不同的上锁或解锁方式
其可取值:
LOCK_SH(共享锁)
LOCK_EX(独占锁)
LOCK_UN(解锁)
一个进程对一个文件只能有一个独占锁,但可以有多个共享锁
上锁的作用只有在别的进程要对该文件上锁时才显现出来
如果一个程序不试图去锁一个已经被上锁的文件,就不可以对其进行访问
调用成功返回0;调用失败返回-1;
------------------------------------------------------------------------