08-04-2001
Semaphores are just flags that a program (programmer) uses to see if the flags are set or clear. By kernel rules, so to speak, the flags are guarenteed to be atomic.
When reading and writing shared memory, you must wrap your opens, reads and writes in each process to check the a semaphore to see if it is set or clear.
Semaphores can be used with lots of things, however they are often used as you ask, with shared memory access.
10 More Discussions You Might Find Interesting
1. Programming
signal in process communication:
I 'm a example in sun_unix that signal in process communication
It's here down but I only have freebsd in my machine.
how can i do the same in freebsd
eg:
#include <stdio.h>
#include <signal.h>
#include <unistd.h>
int
main( void ){
void... (2 Replies)
Discussion started by: a9711
2 Replies
2. HP-UX
Hi All,
i am running a oracle procedure which writes a file . The same file is picked up by another script which runs in a cron after every 5 minutes.
Now the problem is that sometimes my script picks up a file while the procedure is still writing data in the file.
is there is any way i... (4 Replies)
Discussion started by: saurabhjain
4 Replies
3. Programming
Hello,
I would like to ask you for a little help with program I'm working on. I have problems with signals and synchronizing processes (I'm quite new to this part of programming).
Process "parent" creates new child process "child1" and this process creates new child process "child2". The... (2 Replies)
Discussion started by: Nightwright
2 Replies
4. UNIX for Advanced & Expert Users
Hi,
I am thinking about writing a log daemon for a multi-processed ksh application (yes - I know that high-level language would be a better option).
My question is as follows:
If many processes (many scripts) will try writing to a single log file:
print "message" > common.log
Will it work or... (2 Replies)
Discussion started by: adderek
2 Replies
5. Programming
i want to write a C chat program that communicates over IPC(inter process communication), that could be run using 2 seperate terminal windows within the same computer. so that wat u type in one terminal window , should appear on the other and vice versa...
could some one please help me with the... (2 Replies)
Discussion started by: localp
2 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. OS X (Apple)
If I open two bash shells and telnet from Shell 2 to a remote server (on the Net), is there a way to direct input from Shell 1 to the telnet shell?
The telnet shell is a limited environment with a specific command set.
I want to direct commands from Shell 1 and, if possible, put 1-second... (2 Replies)
Discussion started by: xinUoG
2 Replies
8. Programming
hello everyone,
i am making chat server in linux using c. i have made programs in which group chat can take place between multiple clients but i am not able to understand how to make 2 particular clients chat with each other. please help!!! (1 Reply)
Discussion started by: sweetbella
1 Replies
9. Programming
Hello
I would like to create an application with communication between processes,
application tightly coupled, have you please an idea about an API or
a tool that allows me to generate such application?
Thank you so much (11 Replies)
Discussion started by: chercheur857
11 Replies
10. IP Networking
Hello. I want to Communicate 2 VLAN with router like this solution:
http://8pic.ir/images/83m0ouih8mmm9s1sfl56.jpg
For this purpose I'm configuring 2 Linux system as a switch and connect 4 host to them. Then a router is added to scenario.
The configuration of the switches is:
On DUT1(Linux):... (1 Reply)
Discussion started by: zsn
1 Replies
LEARN ABOUT HPUX
shm_open
shm_open(2) System Calls Manual shm_open(2)
NAME
shm_open - create/open a shared memory object
SYNOPSIS
DESCRIPTION
The system call establishes a connection between a shared memory object and a file descriptor. It creates an open file description that
corresponds to the shared memory object and returns a file descriptor that refers to that open file description. This file descriptor
(which is the lowest numbered file descriptor not currently open for that process) is used by other functions to refer to that shared mem-
ory object.
The name argument points to the shared memory object name, and must conform to the general construction rules for a pathname.
The oflag argument is the bitwise inclusive OR of the flags listed under and (these flags are defined in the header file
The new file descriptor has the flag set, and consequently does not remain open across system calls.
Read-Write Flags
The value of oflag must be composed by taking the inclusive OR of exactly one of the following flags:
Open for read access only.
Open for read and write access.
General Flags
Any combination of the following flags may also be used in setting the value of oflag.
If the shared memory object exists, this flag will have no effect, except as
noted under below. Otherwise the shared memory object is created; the shared memory object's user ID is set to the
effective user ID of the process; the shared memory object's group ID is set to the effective group ID of the
process. The shared memory object's permission bits is set to the value of the mode argument except those set in the
file mode creation mask of the process. The new shared memory object will have a size of zero.
If and are set in oflag and the named shared memory object exists, will fail. The flag is ignored if is not set in
oflag.
If the shared memory object exists, and it is successfully opened for reading
and writing set in oflag), the object will be truncated to zero length. The mode and owner shall remain unchanged by
this function call.
RETURN VALUE
returns the following values:
n Successful completion. n is the lowest numbered unused file descriptor for the process.
Failure.
is set to indicate the error.
ERRORS
If fails, is set to one of the following values:
The shared memory object exists and the permissions specified by
oflag are denied, or the shared memory object does not exist and permission to create the it is denied, or is speci-
fied and write permission is denied.
The and are set in oflag and the named shared memory object already exists.
The operation was interrupted by a signal.
The operation is not supported for the given name.
Too many file descriptors are currently in use by this process.
The length of the
name string exceeds or the length of a (pathname) component of the name string exceeds while is in effect.
Too many shared memory objects are currently open in the system.
The flag is not set in oflag and the named shared memory object does not exist.
There are insufficient resources for the creation of the new shared memory
object.
is not supported by the implementation.
SEE ALSO
shm_unlink(2), close(2), mmap(2), munmap(2), privileges(5).
STANDARDS CONFORMANCE
shm_open(2)