09-03-2008
Shared memory for shared library
I am writing a shared library in Linux (but compatible with other UNIXes) and I want to allow multiple instances to share a piece of memory -- 1 byte is enough. What's the "best" way to do this? I want to optimize for speed and portability.
Obviously, I'll have to worry about mutual exclusion.
10 More Discussions You Might Find Interesting
1. Programming
hello all
I want to work in shared libraries how can i work in
Linux Environment ? (2 Replies)
Discussion started by: rajashekaran
2 Replies
2. HP-UX
I have this error when I try to do check on the oracle database...
Can you help me figure out whats the problem? Thanks for all the help!
/usr/lib/pa20_64/dld.sl: Unable to find library 'libjox8.sl'.
/usr/lib/pa20_64/dld.sl: Unable to find library 'libjox8.sl'. ... (1 Reply)
Discussion started by: vinz
1 Replies
3. UNIX for Advanced & Expert Users
I am running HP-UX B.11.11.
I'm increasing a parameter for a database engine so that it uses more memory to buffer the disk drive (to speed up performance). I have over 5GB of memory not being used.
But when I try to start the DB with the increased buffer parameter I get told.
"Not... (1 Reply)
Discussion started by: cjcamaro
1 Replies
4. UNIX for Advanced & Expert Users
What is the primary difference between static library and dynamic library?
and how to write static shared library? (1 Reply)
Discussion started by: areef4u
1 Replies
5. Programming
I need to create a shared library to access an in memory DB. The DB is not huge, but big enough to make it cumbersome to carry around in every single process using the shared library. Luckily, it is pretty static information, so I don't need to worry much about synchronizing the data between... (12 Replies)
Discussion started by: DreamWarrior
12 Replies
6. Shell Programming and Scripting
Hi:
I have a library that it only offers Makefile for building static library. It built libxxx.a file. How do I in any way build a shared library? (either changin the Makefile or direct script or command to build shared library)
Thanks. (1 Reply)
Discussion started by: cpthk
1 Replies
7. UNIX for Dummies Questions & Answers
Each shared library may contain sections with allocatable flag as below:
...
.hash
.gnu.hash
.dynsym
.dynstr
.gnu.version
.gnu.version_d
.rel.dyn
.rel.plt
.plt
...
My questions is that: among above sections, which of them should be loaded in the physical memory by run-time linker... (3 Replies)
Discussion started by: Dongping84
3 Replies
8. OS X (Apple)
I'm trying to get Valgrind to work with an openmpi application in OS X. However I want to hardcode the path to a shared library called libmpiwrap-amd64-darwin.so into my application so that it is available at runtime. In Linux this is relatively simple, I would just add the option... (0 Replies)
Discussion started by: Valgrinder
0 Replies
9. Programming
Hello.
I am new to this forum and I would like to ask for advice about low level POSIX programming.
I have to implement a POSIX compliant C shared library.
A file will have some variables and the shared library will have some functions which need those variables.
There is one special... (5 Replies)
Discussion started by: iamjag
5 Replies
10. AIX
I'm trying to install libiconv to AIX 7.1 from an rpm off of the perzl site. The rpm appears to install but I get this error message.
add shr4.o shared members from /usr/lib/libiconv.a to /opt/freeware/lib/libiconv.a
add shr.o shared members from /usr/lib/libiconv.a to ... (5 Replies)
Discussion started by: kneemoe
5 Replies
LEARN ABOUT POSIX
libcurl-share
libcurl-share(3) libcurl share interface libcurl-share(3)
NAME
libcurl-share - how to use the share interface
DESCRIPTION
This is an overview on how to use the libcurl share interface in your C programs. There are specific man pages for each function mentioned
in here.
All functions in the share interface are prefixed with curl_share.
OBJECTIVES
The share interface was added to enable sharing of data between curl "handles".
ONE SET OF DATA - MANY TRANSFERS
You can have multiple easy handles share data between them. Have them update and use the same cookie database or DNS cache! This way, each
single transfer will take advantage from data updates made by the other transfer(s).
SHARE OBJECT
You create a shared object with curl_share_init(3). It returns a handle for a newly created one.
You tell the shared object what data you want it to share by using curl_share_setopt(3). Currently you can only share DNS and/or COOKIE
data.
Since you can use this share from multiple threads, and libcurl has no internal thread synchronization, you must provide mutex callbacks if
you're using this multi-threaded. You set lock and unlock functions with curl_share_setopt(3) too.
Then, you make an easy handle to use this share, you set the CURLOPT_SHARE option with curl_easy_setopt(3), and pass in share handle. You
can make any number of easy handles share the same share handle.
To make an easy handle stop using that particular share, you set CURLOPT_SHARE to NULL for that easy handle. To make a handle stop sharing
a particular data, you can CURLSHOPT_UNSHARE it.
When you're done using the share, make sure that no easy handle is still using it, and call curl_share_cleanup(3) on the handle.
SEE ALSO
curl_share_init(3), curl_share_setopt(3), curl_share_cleanup(3)
libcurl 7.10.7 8 Aug 2003 libcurl-share(3)