新手看招:在Linux操作系統下創建鎖文件

一、概述

Linux提供了多種特性來實現文件鎖定。其中最簡單的方法就是以原子操作的方式創建鎖文件,所謂“原子操作”就是在創建鎖文件時,系統將不允許任何其它的事情發生。這就給程序提供了一種確保它所創建的文件是唯一性的方式,且該文件不可能被其它程序在同一時刻創建。

二、方法

鎖文件僅僅是充當一個指示器的角色,程序間需要通過相互協作來使用它們。鎖文件只是建議性鎖,與此對立的是強制性鎖。

爲創建一個用作指示器的文件,我們使用帶O_CREATE和O_EXCL標志的open系統調用。這將使我們以一個原子操作同時完成兩項工作:確定文件不存在,然後創建它。

三、實現

//file : lock.c

#i nclude <unistd.h>

#i nclude <stdlib.h>

#i nclude <stdio.h>

#i nclude <fcntl.h>

#i nclude <errno.h>

int main()

{

int file_desc;

int save_errno;

file_desc = open("/tmp/LockFile.test", O_RDWR | O_CREAT | O_EXCL, 0444);

if (file_desc < 0)

{

save_errno = errno;

printf("Open failed with error is %d\n", save_errno);

}

else {

printf("Open succeeded\n");

}

exit(EXIT_SUCCESS);

}

第一次運行程序:

$ lock

輸出如下:

Open succeeded

我們再次運行程序:

$ lock

輸出如下:

Open failed with error is 17

分析:

第一次運行程序時,由于文件並不存在,所以執行成功。對于後續的執行,因爲文件已經存在而失敗了。若想程序再次執行成功,必須刪除鎖文件。

在Linux系統中,通常錯誤號碼17代表的是EEXIST,此錯誤用以表示一個文件已存在。錯誤號定義在頭文件errno.h或(更常見的)它所包含的頭文件中。

新手看招:在Linux操作系統下創建鎖文件
一、概述 Linux提供了多種特性來實現文件鎖定。其中最簡單的方法就是以原子操作的方式創建鎖文件,所謂“原子操作”就是在創建鎖文件時,系統將不允許任何其它的事情發生。這就給程序提供了一種確保它所創建的文件是...查看完整版>>新手看招:在Linux操作系統下創建鎖文件
 
新手看招 Linux操作系統中的文件管理技巧
Linux爲每個文件都分配了一個文件所有者,稱爲文件主,並賦予文件主惟一的注冊名。對文件的控制取決于文件主或超級用戶(root)。  文件或目錄的創建者對所創建的文件或目錄擁有特別使用權,文件的所有關系是可以改變...查看完整版>>新手看招 Linux操作系統中的文件管理技巧
 
新手學堂:Linux操作系統下文件路徑命令
絕對路徑和相對路徑 shell命令: cd /home :前面帶有:"/"是絕對路徑,直接進入home目錄下; cd .. :進入上一級目錄; cd - :返回上次目錄; pwd :顯示當前目錄; cd~ : 代表當前用戶目錄,也就是/home/(用戶名);...查看完整版>>新手學堂:Linux操作系統下文件路徑命令
 
新手學堂:Linux操作系統默認進入文本模式
新手學堂:Linux操作系統默認進入文本模式
linux系統一般都是圖形進入方式,你如果想改過文本進入方式,可按下面的方法。  用root用戶修改/etc/inittab/文件中的id:5:initdefault:,就是圖中的倒數第三位置,把這個5改爲3,即id:3:initdefault:  這樣每次...查看完整版>>新手學堂:Linux操作系統默認進入文本模式
 
Linux操作系統下隱藏文件的新方法
作者:yan一. 概述 目前通用的隱藏文件方法還是hooksys_getdents64系統調用, 大致流程就是先調用原始的sys_getdents64系統調用,然後在在buf中做過濾。修改sys_call_table是比較原始的rk技術了,碰到好點的管理員,...查看完整版>>Linux操作系統下隱藏文件的新方法
 
創建 ext3 文件系統的步驟(摘)--LINUX
  給 Red Hat Linux 系統添加了一個新的磁盤驅動器,給這個磁盤驅動器分區,並使用 ext3 文件系統。 創建 ext3 文件系統的步驟如下所列: 使用 parted 或 fdisk 來創建分區。 ...查看完整版>>創建 ext3 文件系統的步驟(摘)--LINUX
 
Linux操作系統文件系統的桌面應用
  本文中要介紹一個所謂的"Linux 文件系統的守護神",這是指一個能實時地觀察 Linux 文件系統的變化情況的程序模塊。能夠實時的觀察文件系統的變化情況,並做出及時的適當的反應,這對于應用 Linux 做桌面計算機系...查看完整版>>Linux操作系統文件系統的桌面應用
 
Linux操作系統下簡單的系統文件校驗方法
寫一個簡單的腳本,對特定系統文件定期做一個完整性校驗,使用Linux下的md5sum工具對特定目錄的文件進行MD5校驗。#!/bin/bash# Write By LouLanCN@163.commd5sum="/usr/bin/md5sum"md5f=SysCheck-`date +%...查看完整版>>Linux操作系統下簡單的系統文件校驗方法
 
Linux操作系統下簡單的系統文件校驗方法
寫一個簡單的腳本,對特定系統文件定期做一個完整性校驗,使用Linux下的md5sum工具對特定目錄的文件進行MD5校驗。#!/bin/bash# Write By LouLanCN@163.commd5sum="/usr/bin/md5sum"md5f=SysCheck-`date +%...查看完整版>>Linux操作系統下簡單的系統文件校驗方法
 
 
回到王朝網路移動版首頁