How to Create Lock File In C

ImageHOW TO CREATE LOCK FILE IN C

File locking provides a very simple yet incredibly useful mechanism for coordinating file accesses. Before I begin to lay out the details, let me fill you in on some file locking secrets:-

There are two types of locking mechanisms: mandatory and advisory.

è Mandatory systems will actually prevent read() and write() to file.

è There are two types of (advisory!) locks:              read locks and write locks (also referred to as shared locks and exclusive locks, respectively.)

Here I am demonstrating READ-LOCK …

In  my  case , I want  to reduce CPU usage which  takes very  high CPU usage % in case of accessing Sqlite3  by  two  application simultaneously.

To solve  this problem  I  applied  lock  file  concept  to synchronies  applications ,

I applied it for three different applications.

Steps followed while creating lock file:-

è Finalize  File Name (xyz.lock)

è Finalize  lock file  location

è Before running  application , check lock file is  present or not

if(getlock(lockfile)== 1) :: Lock file is not present

è If lock file is not present  then create  lock file

int lockstatus = setlock(lockfile);

è After  completion  of job  delete lock file

Removelock (lockfile)

è If  lock file is  present  then sleep  for  sometime then again check for lock file

è While creating lock file, handle unexpected application closing mechanism to avoid trouble when next time application needs to be run.

Note: Extension of lock file is (abc.lock)

Note: Remove lock file when application is forcefully terminating (ctrl + C)

(Example of lock file in c using semaphores : –  )

Reference: http://www.c-program-example.com/2012/04/c-program-to-lock-file-using-semaphores.html

PUSHPRAJ  KUMAR..(pushpraj@helicaltech.com)

Advertisements

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google+ photo

You are commenting using your Google+ account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

w

Connecting to %s