Sponsored Content
Full Discussion: lock the file in linux
Operating Systems Linux Red Hat lock the file in linux Post 302349150 by chuikingman on Monday 31st of August 2009 08:18:15 AM
Old 08-31-2009
Bug lock the file in linux

Quote:
Originally Posted by sharadpisal
from perldoc -f flock

Two potentially non-obvious but traditional flock semantics are that it waits indefinitely until the lock is granted, and that its locks merely advisory. Such discretionary locks are more flexible, but offer fewer guarantees. This means that programs that do not also use flock may modify files locked with flock.


So you need to use same locking mechanism in all processes interested in locking the file, in order to ensure that files gets locked properly.


All file locking algo works like this:

While (file_is_locked()) {
wait;
}
lock_the file();

Do_somthing_on_file;
unlock_the_file();



Its up to you to decide, what you mean when you say 'lock_the file();' I suggest to create lock file, so 'file_is_locked()' will mean checking existance of .lock file.


HTH;

---------- Post updated at 05:45 PM ---------- Previous update was at 05:44 PM ----------



That wont help if, all processes interested in having lock on perticular file, runs with same user id.

so, If I just want to use a process (perl) to hold/lock the file and do not allow other to edit or modify , any method to do it in perl ???
Please suggest .....
 

6 More Discussions You Might Find Interesting

1. UNIX for Dummies Questions & Answers

how to lock keyboard without using lock command

how can I lock my keyboard while I'm away from the computer without using lock command. What other commands gives me the option to lock keyboard device? thanks (7 Replies)
Discussion started by: dianayun
7 Replies

2. UNIX for Dummies Questions & Answers

Lock File

Hi, We have a lock file being created called lck8c0001 created in Unixware 2.1.2. This is locking a printer. According to some websites, 8c0001 relates to the device name. How does one link 8c0001 to those devices listed in the /dev folder? I have done a ps -lp for all printers and have... (4 Replies)
Discussion started by: canman
4 Replies

3. Shell Programming and Scripting

Sheel Scripting to lock 2 TCP unused ports in solaris and linux

My requirement is I need to write a program in shell scripting to check 2 TCP unused unique port numbers in SOLARIS and I have to lock the same ports so that it will not be used in any other new process and the same port numbers should be used and locked in the LINUX machine to communicate... (2 Replies)
Discussion started by: sreeramr30
2 Replies

4. Red Hat

Security Question: Lock after invalid login, Session Lock and Required Minimum Password Length

Hello all, If anyone has time, I have a few questions: How do I do the following in Linux. We are using Red Hat and Oracle Enterprise Linux, which is based on Red Hat too. 1. How to lock the account after a few (like 3) invalid password attempts? 2. How do you lock a screen after 30... (1 Reply)
Discussion started by: nstarz
1 Replies

5. UNIX for Advanced & Expert Users

Testing privileges -lock lockfile /var/lock/subsys/..- Permission denied

Hi all, I have to test some user priviliges. The goal is to be sure that an unauthorized user can't restart some modules (ssh, mysql etc...). I'm trying to automate it with a shell script but in same cases I got the syslog broadcast message. Is there any way to simply get a return code... (3 Replies)
Discussion started by: Dedalus
3 Replies

6. UNIX for Advanced & Expert Users

Linux lock problem

Hi Team, I have a requirement to access a shared resource from the user and interrupt context. What type of locking mechanism I have to use for this. Can any body give advice on this. Thanks in advance. -Shiva (4 Replies)
Discussion started by: shivakoteswarra
4 Replies
flock(3UCB)					     SunOS/BSD Compatibility Library Functions					       flock(3UCB)

NAME
flock - apply or remove an advisory lock on an open file SYNOPSIS
/usr/ucb/cc[ flag ... ] file ... #include <sys/file.h> int flock( fd, operation); int fd, operation; DESCRIPTION
flock() applies or removes an advisory lock on the file associated with the file descriptor fd. The compatibility version of flock() has been implemented on top of fcntl(2) locking. It does not provide complete binary compatibility. Advisory locks allow cooperating processes to perform consistent operations on files, but do not guarantee exclusive access (that is, pro- cesses may still access files without using advisory locks, possibly resulting in inconsistencies). The locking mechanism allows two types of locks: shared locks and exclusive locks. More than one process may hold a shared lock for a file at any given time, but multiple exclusive, or both shared and exclusive, locks may not exist simultaneously on a file. A lock is applied by specifying an operation parameter LOCK_SH for a shared lock or LOCK_EX for an exclusive lock. The operation paramerer may be ORed with LOCK_NB to make the operation non-blocking. To unlock an existing lock, the operation should be LOCK_UN. Read permission is required on a file to obtain a shared lock, and write permission is required to obtain an exclusive lock. Locking a seg- ment that is already locked by the calling process causes the old lock type to be removed and the new lock type to take effect. Requesting a lock on an object that is already locked normally causes the caller to block until the lock may be acquired. If LOCK_NB is included in operation, then this will not happen; instead, the call will fail and the error EWOULDBLOCK will be returned. RETURN VALUES
flock() returns: 0 on success. -1 on failure and sets errno to indicate the error. ERRORS
EBADF The argument fd is an invalid descriptor. EINVAL operation is not a valid argument. EOPNOTSUPP The argument fd refers to an object other than a file. EWOULDBLOCK The file is locked and the LOCK_NB option was specified. SEE ALSO
lockd(1M), chmod(2), close(2), dup(2), exec(2), fcntl(2), fork(2), open(2), lockf(3C) NOTES
Use of these interfaces should be restricted to only applications written on BSD platforms. Use of these interfaces with any of the system libraries or in multi-thread applications is unsupported. Locks are on files, not file descriptors. That is, file descriptors duplicated through dup(2) or fork(2) do not result in multiple instances of a lock, but rather multiple references to a single lock. If a process holding a lock on a file forks and the child explicitly unlocks the file, the parent will lose its lock. Locks are not inherited by a child process. Processes blocked awaiting a lock may be awakened by signals. Mandatory locking may occur, depending on the mode bits of the file. See chmod(2). Locks obtained through the flock() mechanism under SunOS 4.1 were known only within the system on which they were placed. This is no longer true. SunOS 5.10 19 Jul 1994 flock(3UCB)
All times are GMT -4. The time now is 05:33 PM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy