Download Shareware and Freeware Software for Windows, Linux, Macintosh, PDA

line Home  |  About Us  |  Link To Us  |  FAQ  |  Contact

Serving Software Downloads in 976 Categories, Downloaded 29.545.406 Times

ShmFIFO library 1.0

  Date Added: February 02, 2010  |  Visits: 582

ShmFIFO library

Report Broken Link
Printer Friendly Version

Product Homepage
Download (73 downloads)

ShmFIFO library provides an easy-to-use interface to shared memory for programs where one process needs to send blocks of data to other processes. It was developed because pipe(2) and mkfifo(3) have a very small buffer size (4k) and are unsuitable for many applications. Shmfifo allows you to put a block of data in shared memory, get the oldest block of data from shared memory. ShmFIFO library also has the feature to share one instance of a private data structure among all processes which use the library. How to use shmfifo Before using, shared memory should be created. After creating shared memory, process which wants to use it, should attach to memory. Then it can put and get blocks to FIFO. After process is finished working with FIFO, it calls shfifo_detach. When no processes will use FIFO, shared memory should be deallocated. Usally, lifecycle of shmfifo-based program is following: [parent] shmfifo_create [parent] fork(2) [both] shmfifo_attach [both] shmfifo_put, shmfifo_get (many times) [both] shmfifo_detach [parent] wait(2) or waitpid(2) [child] exit [parent] shmfifo_dealloc shmfifo comes with test.c program, which is good sample of how to write programs with shmfifo. It forks into 2 processes, parent generated variable-length blocks, writes checksum into each block and put it into FIFO. Child gets blocks from fifo, check if checksum is valid (its always valid if there is no bug in program) and prints debug info. after large number of blocks gets transferred, both processes are exit. Additionally, shmfifo allows processes to share one private structure. test.c uses this structure to store counter, which is increased each time when parent cannot put block to FIFO because its already full and has to wait until child will get block. If small amount of memory allocated for FIFO, then parent will wait more often. Installation: make make test su - make install test.c is sample test program which is builts into test binary. You can run it to test if library is working.

Requirements: No special requirements
Platforms: Linux
Keyword: Libraries Library Memory Parent Processes Programming Shared Shared Memory Shmfifo
Users rating: 0/10

License: Freeware Size: 12.29 KB
More Reviews or Write Review

Libraries  -  OSSP mm 1.4.2
OSSP mm is a 2-layer abstraction library which simplifies the usage of shared memory between forked (and this way strongly related) processes under Unix platforms. On the first layer it hides all platform dependent implementation details...
337.92 KB  
Utilities  -  pmem 1.1.2
pmem software displays memory information of running processes. To do this, pmem reads the memory information that are provided by the /proc file systems. Therefore, pmem does not work on operating systems that do not maintain this files system....
71.68 KB  
Libraries  -  GODI 20060118
GODI library provides an advanced programming environment for the Objective Caml (OCaml) language. From INRIA (who created OCaml) you can get the OCaml compiler and runtime system, but this is usually not enough to develop applications. You also...
1.5 MB  
Libraries  -  RubyMail 0.17
RubyMail is an email handling library for the Ruby programming language. RubyMail library supports the parsing, modification, and generation of simple and MIME email messages.. Home page of RubyMail, an email library for the Ruby programming...
112.64 KB  
Libraries  -  uSTL 1.0
uSTL is a partial implementation of the Standard Template Library which reduces code size by factoring memory management code into a non-template base class and deriving containers from it. Whats New in This Release: - This is the...
102.4 KB  
Libraries  -  smalloc 1.0
smalloc short from Static memory buffer malloc, is an ideal memory manager for Realtime Linux Kernel modules that cant use dynamic memory offered by kmalloc because of the non-realtime nature of kmalloc. Like malloc(), smalloc() doles out memory...
7.17 KB  
Utilities  -  Rizone Memory Booster
Before you think 'Not another Memory Booster', Rizone Memory Booster is not just another Memory Booster. And yes, I know all software companies claim that they have the solution to never upgrading memory again. First of all, most of these...
358.4 KB  
Libraries  -  Lua Selenium Driver 1.0.1
Lua Selenium Driver is a Selenium 1 library that provides a programming interface (API), i.e., a set of functions, which run Selenium commands. Within each interface, there is a programming function that supports each Selenese command. Get Lua...
Libraries  -  Cognity 1.0 Beta
Cognity is designed as an object-oriented neural network library for the Java programming language. The main goal of the library is to provide an easy-to-use, high level architecture for neural network computations along with reasonable performance.
Programming  -  DataSet library 1.0
DataSet library is Java based library which is table form datacontainer in memory. It has fixed number of columns and varying numbers of rows. It read and write data from datasource through pluggable engines. Connection to SQL/JDBC databases is...
62.89 KB  
Programming  -  FLEX-db Digital Asset Manager 3.0.9
FLEX-db - an enterprise Digital Asset Manager (DAM). It ingests and links metadata with files, creates thumbnails, and processes files using business rules. FLEX-db has a JSP client, Java app server for file input and output and an EJB metadata...
21.57 MB  
Programming  -  Libicom 0.9.0
The libicom library is a character based dynamicly linked library for Linux. It is used to remotely control the Icom IC-R8500 wide band receiver via an RS232 link. All call and return parameters to the control functions are character string based....
20.48 KB  
Programming  -  dotdesktop 0.3
Dotdesktop library provides ability to parse desktop entry file and access the information in a convenient way. Desktop entry file format is defined by, it is used to describe information about an application such as the name and...
327.68 KB  
Programming  -  Cedalion for Linux 0.2.6
Cedalion is a programming language that allows its users to add new abstractions and define (and use) internal DSLs. Its innovation is in the fact that it uses projectional editing to allow the new abstractions to have no syntactic limitations.
471.04 KB  
Programming  -  libyasl 0.2
Libyasl is a C++ class library to easily realize TCP/UDP/Multicast clientsand servers in IPv4 and IPv6 environments under GNU/Linux systems.
143.36 KB  
Libraries  -  EuGTK 4.8.9
Makes it easy to develop good- looking, fast, cross-platform programs that run on Linux, OS X, and Windows. Euphoria is a very fast interpreted/compiled language with straight-forward syntax. EuGTK allows programming in a clean, object-oriented...
10.68 MB  
Libraries  -  Linux User Group Library Manager 1.0
The LUG Library Manager is a project to help Linux User Groups start their own library. A LUG library is helpful to the community at large because it increases access to information, and gives everyone the opportunity to become more knowledgeable.
5.35 KB  
Libraries  -  Module::MakefilePL::Parse 0.12
Module::MakefilePL::Parse is a Perl module to parse required modules from Makefile.PL. SYNOPSIS use Module::MakefilePL::Parse; open $fh, Makefile.PL; $parser = Module::MakefilePL::Parse->new( join("", ) ); $info = $parser->required;...
8.19 KB  
Libraries  -  sqlpp 0.06
sqlpp Perl package is a SQL preprocessor. sqlpp is a conventional cpp-alike preprocessor taught to understand SQL ( PgSQL, in particular) syntax specificities. In addition to the standard #define/#ifdef/#else/#endif cohort, provides also...
10.24 KB  
Libraries  -  App::SimpleScan::Substitution::Line 2.02
App::SimpleScan::Substitution::Line is a line with optional fixed variable values. SYNOPSIS my $line = App::SimpleScan::Substitution::Line->new(" this "); # Use only this value when substituting " ". $line->fix(substituite =>...
54.27 KB