03-09-2004
OK, use 7,564,263.
I'm tempted to end my reply there, but I guess some explanation is in order.
Suppose for a moment that your my_fn function was going to be used in a single executable so that the semaphore would only need to syncronize among simultaneous instances of that single executable. In that case, you could go ahead and use the address of the function. But what is magic about that address? The loader could, in theory, put another function in another executable at the same address.
There are billions of possible key values, but I have never seen a system that needs more than a few dozen. That makes this a small problem. Just pick something and go with that. It's like picking a name for your function or picking a file name.
Collisions are possible and you should be ready for them. Always test your return codes. And I would put the value in a config file and read it once. This makes it easy to change if that is ever needed. The my_fn could do this internally by using a static value initialized to zero. If zero, read the value and store it in the static variable.
Or you can just store the key as a constant in my_fn and risk the need to recompile should a collision occur. I've done that too.
There is also a function called ftok() that you should look at. It takes a pathname and a small integer and returns a key. I never use it, but if I don't mention it, someone else will.
9 More Discussions You Might Find Interesting
1. Shell Programming and Scripting
Hi,
I have three Linux machine have three different times.
Can I synchronize them using one process?
I have root access.
Thanks! (1 Reply)
Discussion started by: whatisthis
1 Replies
2. Shell Programming and Scripting
I have 4 directory
Dir1
file1 file2 file3 file4
Dir2
file3 file5 file6 file8
Dir3
file1 file2 file6 file9 file10
Dir4
file3 file6 file12 file15
and all the 4 dirs are having couple of files.
Few of the files are common to other directory/ies and few... (1 Reply)
Discussion started by: reldb
1 Replies
3. Programming
I am writing a program in C for my networking class, so I am relatively new to this.
To begin, I have 7 processes that need do send messages to every other one, and every one of them needs to receive the messages sent by others.
I am using fork() to create 6 more processes.
The message... (1 Reply)
Discussion started by: inabramova
1 Replies
4. UNIX for Advanced & Expert Users
hi.
i am writing a c program under bash shell.
i would like to use semaphore functions like sem_wait(), sem_post()
and i included <semaphore.h> and it compailes fine
but when i try to run it gives me an error "undefined reference to sem_wait() , sem_post() , sem_init()"
what have i missed... (2 Replies)
Discussion started by: emil2006
2 Replies
5. Programming
i am trying to synchronize between father process and son process
created by fork() command, to print simultaneously.
my program is written in c under bash shell.
the compile goes ok but when i try to run nothing happens and the program doesnot end.
my code is:
#include <stdio.h>... (1 Reply)
Discussion started by: emil2006
1 Replies
6. Shell Programming and Scripting
Hi,
I have two servers1&2, one is not in the network. Cant communicate from it to other servers. The second one can communicate to above mentioned server. I am trying a script which synchronizes files between server 1 an 2?
server1: cant communicate to any other servers
server2: can... (4 Replies)
Discussion started by: Tuxidow
4 Replies
7. Shell Programming and Scripting
Hi everyone!
I need to write a script that will synchronize two servers using FTP. So basically the script will get only the files that exist on the remote server that do not exist on the local server. Is there an option to do this when using mget? If not, is there a way to copy over only the... (2 Replies)
Discussion started by: Fatbob
2 Replies
8. AIX
Hi
Earlier we used to move the resource groups between nodes manually. Recently I have added the HACMP startup and stop scripts.
Then I moved the resource group to see if everything works fine as per the startup and stop scripts, but it didn't work out as expected.
Do i need to do bring... (4 Replies)
Discussion started by: samsungsamsung
4 Replies
9. UNIX for Advanced & Expert Users
Hello, I have the latest stable release of a UNIX-like O.S. in the ISO format, and want to synchronize it with the latest Release Candidate (RC) of it, in order to reducing bandwidth usage. The ISO images for that O.S. is provided via different protocols including rsync, FTP and HTTP
Is this... (4 Replies)
Discussion started by: temp-usr
4 Replies
LEARN ABOUT REDHAT
glupickmatrix
GLUPICKMATRIX(3G) GLUPICKMATRIX(3G)
NAME
gluPickMatrix - define a picking region
C SPECIFICATION
void gluPickMatrix( GLdouble x,
GLdouble y,
GLdouble delX,
GLdouble delY,
GLint *viewport )
PARAMETERS
x, y Specify the center of a picking region in window coordinates.
delX, delY
Specify the width and height, respectively, of the picking region in window coordinates.
viewport
Specifies the current viewport (as from a glGetIntegerv call).
DESCRIPTION
gluPickMatrix creates a projection matrix that can be used to restrict drawing to a small region of the viewport. This is typically useful
to determine what objects are being drawn near the cursor. Use gluPickMatrix to restrict drawing to a small region around the cursor.
Then, enter selection mode (with glRenderMode) and rerender the scene. All primitives that would have been drawn near the cursor are iden-
tified and stored in the selection buffer.
The matrix created by gluPickMatrix is multiplied by the current matrix just as if glMultMatrix is called with the generated matrix. To
effectively use the generated pick matrix for picking, first call glLoadIdentity to load an identity matrix onto the perspective matrix
stack. Then call gluPickMatrix, and finally, call a command (such as gluPerspective) to multiply the perspective matrix by the pick
matrix.
When using gluPickMatrix to pick NURBS, be careful to turn off the NURBS property GLU_AUTO_LOAD_MATRIX. If GLU_AUTO_LOAD_MATRIX is not
turned off, then any NURBS surface rendered is subdivided differently with the pick matrix than the way it was subdivided without the pick
matrix.
EXAMPLE
When rendering a scene as follows:
glMatrixMode(GL_PROJECTION); glLoadIdentity(); gluPerspective(...); glMatrixMode(GL_MODELVIEW);
a portion of the viewport can be selected as a pick region like this:
glMatrixMode(GL_PROJECTION); glLoadIdentity(); gluPickMatrix(x, y, width, height, viewport); gluPerspective(...); glMatrixMode(GL_MOD-
ELVIEW);
SEE ALSO
glGet(3G), glLoadIndentity(3G), glMultMatrix(3G), glRenderMode(3G), gluPerspective(3G)
GLUPICKMATRIX(3G)