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

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

Serving Software Downloads in 956 Categories, Downloaded 50.075.055 Times

ShmFIFO library 1.0

  Date Added: February 02, 2010  |  Visits: 801

ShmFIFO library

Report Broken Link
Printer Friendly Version


Product Homepage
Download (109 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
USER REVIEWS
More Reviews or Write Review


SHMFIFO LIBRARY RELATED
Libraries  -  Gnome Devtool Libraries 0.7.0
Gnome Devtool Libraries project contains components and libraries that are intended to be shared between GNOME development tools, including gnome-debug, gnome-build, and anjuta2. The current pieces of GDL include: - A symbol browser bonobo...
583.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  
Multimedia & Graphics  -  Pyllar Plotting Library 0.2
Pyllar is a 3D plotting library for the Python programming language. It uses the Visualization Toolkit (VTK) and PyNum library provide high quality 3D plots for science and engineering.
490.86 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.
 
Utilities  -  Dylan Code Collection 1.7
A collection of useful libraries written in the Dylan programming language. The intent of this project is to provide easily accessible libraries for people developing applications using Functional Developer and/or Gwydion Dylan.
673.63 KB  
Programming  -  kin 0.0.2
kin is a set of libraries and tools supporting meta-programming for engineering and technical computing applications. This JVM version of kin has been superseded by the stand-alone version being developed at http://purl.org/net/kin.
477.44 KB  
Video Editors  -  proGPUKLT 0.9.2
proGPUKLT is a library for the Processing programming language and environment that wraps a GPU-implementation of the Kanade-Lucas-Tomasi feature tracker used for computer vision applications.
228.25 KB  
Programming  -  proTablet 1.0.0rc1
This library for the Processing programming language provides classes to wrap the functionality of the JPen-2 tablet package for Java, thus simplifying the use of graphical tablets in Processing.
276.57 KB  
NEW DOWNLOADS IN PROGRAMMING, LIBRARIES
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  -  Math::GMPf 0.29
Math::GMPf - perl interface to the GMP library's floating point (mpf) functions.
30.72 KB  
Programming  -  Net::Wire10 1.08
Net::Wire10 is a Pure Perl connector that talks to Sphinx, MySQL and Drizzle servers. Net::Wire10 implements the low-level network protocol, alias the MySQL wire protocol version 10, necessary for talking to one of the aforementioned...
30.72 KB  
Programming  -  logilab-common 0.56.2
a bunch of modules providing low level functionnalities shared among some python projects devel Please note that some of the modules have some extra dependencies. For instance, logilab.common.db will require a db-api 2.0 compliant...
174.08 KB  
Programming  -  OpenSSL for linux 1.0.0a
The OpenSSL Project is a collaborative effort to develop a robust, commercial-grade, full-featured, and Open Source toolkit implementing the Secure Sockets Layer (SSL v2/v3) and Transport Layer Security (TLS v1) protocols as well as a...
3.83 MB  
Libraries  -  wolfSSL 4.0.0
The wolfSSL embedded SSL/TLS library is a lightweight SSL library written in ANSI standard C and targeted for embedded and RTOS environments - primarily because of its small size, speed, and feature set. It is commonly used in standard operating...
3.88 MB  
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