02-13-2006
Quote:
Originally Posted by jim mcnamara
You want write-execlusive locking, correct?
Otherwise read-shared locking.
I need read-write locks of the kind described by Butenhof in his "Programming with Posix Threads" book. These provide read-shared and write-exclusive access to a resource (not at the same time, naturally) within a process. I need to extend this concept to multiple processes.
10 More Discussions You Might Find Interesting
1. UNIX for Advanced & Expert Users
helo i make one process for com port . in that i create two thread one for reading data and another for writing data to com port.
now i want to write a script which create 30 processes for handling 30 com port.
is it good solution for handling 30 com port.
Thx & Regards,
Amit (2 Replies)
Discussion started by: amitpansuria
2 Replies
2. Shell Programming and Scripting
I need to find all the files that have group Read or Write permission or files that have user write permission.
This is what I have so far:
find . -exec ls -l {} \; | awk '/-...rw..w./ {print $1 " " $3 " " $4 " " $9}'
It shows me all files where group read = true, group write = true... (5 Replies)
Discussion started by: shunter63
5 Replies
3. HP-UX
Hi,
I read a set of processes with:
ps -eaf|grep oracleTRLV
The result is:
oracle 23253 1 0 15:14:11 ? 0:00 oracleTRLV (LOCAL=NO)
oracle 23301 1 0 15:15:07 ? 0:00 oracleTRLV (LOCAL=NO)
oracle 22914 1 0 15:11:19 ? 0:00 oracleTRLV (LOCAL=NO)
How to I kill the "oracleTRLV" ones? Is there... (17 Replies)
Discussion started by: NicoMan
17 Replies
4. IP Networking
Hi,
We have smb client running on two of the linux boxes and smb server on another linux system. During a backup operation which uses smb, read of a file was allowed while write to the same file was going on.Also simultaneous writes to the same file were allowed.Following are the settings in the... (1 Reply)
Discussion started by: swatidas11
1 Replies
5. IP Networking
hi
am newbie to unix and socket programing
I am trying to figuring out syntax for read and write
to send data from server to client and client can read it
I have to send two integers
write(newsockfd,buffer,"%d %d",x,y,0) writing from client where x and y are two integers..
... (7 Replies)
Discussion started by: karthik1238
7 Replies
6. Programming
I need help!Many Thanks!
Now,I try to manage the shared memory inter-process .
Inevitably,I have to deal with the synchronous.
I know the pthread_rwlock in posix,and I compile ,then run successfully in Red Hat Enterprise 4.
I have a doubt about whether the Posix supports the system such as... (1 Reply)
Discussion started by: weizh
1 Replies
7. UNIX for Advanced & Expert Users
If we have 3 process to write to same log file at the same time like below. will it cause the data outdated because the multiple process writing same time? It this a safe way to keep the log for multiple process?
p1 >> test.log &;
p2 >> test.log &;
p3 >> test.log &
Thanks, (1 Reply)
Discussion started by: casttree
1 Replies
8. Programming
HI
I need to implement a client/server TCP application. the customer is the client and the bartender is the server.
When the customer enter the Bar, client connects to the server
Server should reply the client immediately. Other wise if the server is busy, it should send an update message... (10 Replies)
Discussion started by: lixiao1212
10 Replies
9. Shell Programming and Scripting
I have got a file in following format:
AAAAAAA
BBBBBBBB
CCCCCCC
DDDDDDD
I am trying to read this file and out put it in following format:
AAAAAAA,BBBBBBB,CCCCCCC,DDDDDD
Preferred method is shell or Perl.
Any help appreciated. (11 Replies)
Discussion started by: Araoki
11 Replies
10. Programming
Can someone help me to write this program in C in QNX?
Using the FIFO queues write a simple communication system consisting of programs write and read. The program write the parameters given strings enclosed in single quotes. These strings are written to the FIFO file. Reads the program read... (1 Reply)
Discussion started by: ebasse2
1 Replies
FLOCK(2) System Calls Manual FLOCK(2)
NAME
flock - apply or remove an advisory lock on an open file
SYNOPSIS
#include <sys/file.h>
#define LOCK_SH 1 /* shared lock */
#define LOCK_EX 2 /* exclusive lock */
#define LOCK_NB 4 /* don't block when locking */
#define LOCK_UN 8 /* unlock */
flock(fd, operation)
int fd, operation;
DESCRIPTION
Flock applies or removes an advisory lock on the file associated with the file descriptor fd. A lock is applied by specifying an operation
parameter that is the inclusive or of LOCK_SH or LOCK_EX and, possibly, LOCK_NB. To unlock an existing lock operation should be LOCK_UN.
Advisory locks allow cooperating processes to perform consistent operations on files, but do not guarantee consistency (i.e., processes 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. At any time multiple shared locks may be applied to a
file, but at no time are multiple exclusive, or both shared and exclusive, locks allowed simultaneously on a file.
A shared lock may be upgraded to an exclusive lock, and vice versa, simply by specifying the appropriate lock type; this results in the
previous lock being released and the new lock applied (possibly after other processes have gained and released the lock).
Requesting a lock on an object that is already locked normally causes the caller to be blocked 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.
NOTES
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.
Processes blocked awaiting a lock may be awakened by signals.
RETURN VALUE
Zero is returned if the operation was successful; on an error a -1 is returned and an error code is left in the global location errno.
ERRORS
The flock call fails if:
[EWOULDBLOCK] The file is locked and the LOCK_NB option was specified.
[EBADF] The argument fd is an invalid descriptor.
[EINVAL] The argument fd refers to an object other than a file.
SEE ALSO
open(2), close(2), dup(2), execve(2), fork(2)
4.2 Berkeley Distribution May 22, 1986 FLOCK(2)