成都网站建设设计

将想法与焦点和您一起共享

linux中lock命令 linux lockf函数

操作系统,linux中 lockf(1,1,0);和 lockf(1,0,0); 是什么作用

ockf(fd,1,0)是给fd文件上锁,lockf(fd,0,0)是解锁,配合使用,实现进程的互斥。

创新互联专注于土默特左旗企业网站建设,响应式网站,商城网站建设。土默特左旗网站建设公司,为土默特左旗等地区提供建站服务。全流程定制开发,专业设计,全程项目跟踪,创新互联专业和态度为您提供的服务

头文件

#include sys/file.h

函数:

int lockf(int fd, int cmd, off_t len);

fd -- 文件id.

fcntl(2)的接口(inteface)函数

返回1表示调用lockf成功.

lockf用于锁定或打开锁定一个共享文件.

操作有:

F_LOCK(锁定),F_TLOCK,F_ULOCK(打开锁定),F_TEST

扩展资料:

注意事项

lockf()函数允许将文件区域用作信号量(监视锁),或用于控制对锁定进程的访问(强制模式记录锁定)。试图访问已锁定资源的其他进程将返回错误或进入休眠状态,直到资源解除锁定为止。当关闭文件时,将释放进程的所有锁定,即使进程仍然有打开的文件。当进程终止时,将释放进程保留的所有锁定。

函数声明:

/* 'lockf' is a simpler interface to the locking facilities of 'fcntl'. LEN is always relative to the current file position. The CMD argument is one of the following. This function is a cancellation point and therefore not marked with __THROW. */

#include unistd.h

int lockf(int fd, int cmd, off_t len);

请教linux下如何实现原子自增操作

Linux的源码中x86体系结构原子操作的定义文件为。

linux2.6/include/asm-i386/atomic.h

文件内定义了原子类型atomic_t,其仅有一个字段counter,用于保存32位的数据。

typedef struct { volatile int counter; } atomic_t;

其中原子操作函数atomic_inc完成自加原子操作。

/**

* atomic_inc - increment atomic variable

* @v: pointer of type atomic_t

*

* Atomically increments @v by 1.

*/

static __inline__ void atomic_inc(atomic_t *v)

{

__asm__ __volatile__(

LOCK "incl %0"

:"=m" (v-counter)

:"m" (v-counter));

}

其中LOCK宏的定义为。

#ifdef CONFIG_SMP

#define LOCK "lock ; "

#else

#define LOCK ""

#endif

可见,在对称多处理器架构的情况下,LOCK被解释为指令前缀lock。而对于单处理器架构,LOCK不包含任何内容。

linux中lock命令如何使用

lock -np

最常用搭配,永久锁屏,直到输入密码为止

其实问这个问题最好问你自己的电脑,因为有几个版本还没这个命令(比如我的就是vlock而没有lock),直接man lock查看


当前文章:linux中lock命令 linux lockf函数
本文URL:http://chengdu.cdxwcx.cn/article/doppesp.html