Sponsored Content
Top Forums Programming How to make a C code reentrant? Post 8211 by rwb1959 on Monday 8th of October 2001 11:17:16 AM
Old 10-08-2001
Did you write the code?
Was it written for and compiled on UNIX/Linux?
Does the code interact with any devices or shared resources?

In general (based on your question alone), you can run a
"black box" type of process any number of times from any
number of termials. Much depends on what it is the code
needs to do.
The basics for writing reentrant functions is
a reentrant function does not hold static data over successive
calls, nor does it return a pointer to static data. All data is
provided by the caller of the function. A reentrant function must
not call non-reentrant functions.
In most cases, non-reentrant functions must be replaced by
functions with a modified interface to be reentrant. Non-reentrant
functions cannot be used by multiple threads. Furthermore, it may
be impossible to make a non-reentrant function thread-safe.

You may want to pick up a book or two on advanced unix
programming and programming threads for a more in-depth
discussion on reentrant and thread-safe code.
 

9 More Discussions You Might Find Interesting

1. Linux

Need direction to make code for cellphone in C,C++ or Perl

Hi All, I need a help from the techie guys in this group.Actually, i need to make a code which can make wallpaper and ringtone for a mobile phone using any method. I know C,C++ and perl langauges but doesnot having much knowledge of JAVA. So can anybody tell me that whether i can... (0 Replies)
Discussion started by: basileis
0 Replies

2. Shell Programming and Scripting

Please make this code elegant.

Hi All, Following is the part of my script.It does contain many for loops and is not elegant. Please feel free to suggest any changes to make this elegant. Thanks! nua7 for i in `ls $CATALINA_HOME/shared/lib/*.jar`; do LOCALCLASSPATH="$LOCALCLASSPATH:$i" done for i in... (3 Replies)
Discussion started by: nua7
3 Replies

3. UNIX for Advanced & Expert Users

how to port a package to huge source code having its own make and compilers

In general for intalling a package like we do ./configure, make , make install But if we want to integrate the package with a huge source base what are the things to be taken care could some one have a light on purpose of ./configure , make and make install along with above question. I... (1 Reply)
Discussion started by: Gopi Krishna P
1 Replies

4. Solaris

Gani Network Driver Won't Install - make: Fatal error: Don't know how to make targ...

I attached a README file that I will refer to. I successfully completed everything in the README file until step 4. # pwd /gani/gani-2.4.4 # ls COPYING Makefile.macros gem.c Makefile Makefile.sparc_gcc gem.h Makefile.amd64_gcc ... (1 Reply)
Discussion started by: Bradj47
1 Replies

5. Shell Programming and Scripting

trying to make an AWK code for ordering numbers in a column from least to highest

Hi all, I have a large column of numbers like 5.6789 2.4578 9.4678 13.5673 1.6589 ..... I am trying to make an awk code so that awk can easily go through the column and arrange the numbers from least to highest like 1.6589 2.4578 5.6789 ....... can anybody suggest, how can I do... (5 Replies)
Discussion started by: ananyob
5 Replies

6. UNIX for Advanced & Expert Users

How to Make Sql Plus Exit with an Error Code

Dear all, How to make sqlplus command to exit with an apt error code in bash script, It always returns 0 for me. Thanks (9 Replies)
Discussion started by: vetrivendhan
9 Replies

7. Programming

Help with make this Fortran code more efficient (in HPC manner)

Hi there, I had run into some fortran code to modify. Obviously, it was written without thinking of high performance computing and not parallelized... Now I would like to make the code "on track" and parallel. After a whole afternoon thinking, I still cannot find where to start. Can any one... (3 Replies)
Discussion started by: P_E_M_Lee
3 Replies

8. Shell Programming and Scripting

Code to make sure Script runs only on sunday -

Hi I have written a script which restarts the application , I want to add a piece of code in my script , to make sure this gets executed only on sunday . So that even if someone runs it on any other day by mistake it should exit throwing an error message . Can someone please assist what will... (6 Replies)
Discussion started by: honey26
6 Replies

9. Shell Programming and Scripting

How to make this code working?

Hi Gurus, I wrote a simple code, but it doesn't work, can body help me to fix the issue. awk -F',' 'BEGIN{n=0}{ NR == FNR {fname;next} { if ($3==fname) n=1 } END{if n==0} }' tmpsrc srcfile.txt Thanks in advance (4 Replies)
Discussion started by: ken6503
4 Replies
sia_getpasswd(3)					     Library Functions Manual						  sia_getpasswd(3)

NAME
sia_getpasswd, sia_getgroup - interface to the getpw* and getgr* routines for SIA (Security Integration Architecture) LIBRARY
Standard C library (libc.so and libc.a) SYNOPSIS
#include <sia.h> #include <siad.h> int sia_getpasswd( int function, int reentrant, union sia_get_params *params); int sia_getgroup( int function, int reentrant, union sia_get_params *params); PARAMETERS
function The function parameter is a subfunction selection code as defined by P_SET in the siad.h file. reentrant The reentrant parameter is a flag which is either REENTRANT (1) or NON_REENTRANT (0). NON_REENTRANT indicates that the result and buffer pointers passed in the params arguments will be returned pointing to static data. REENTRANT indicates that result and buffer are used as passed (caller provided storage). params The sia_get_params is defined as follows: typedef struct { char *name; gid_t gid; struct group *result; char *buffer; int len; int pkgind; } group_params; typedef struct { char *name; uid_t uid; struct passwd *result; char *buffer; int len; int pkgind; } passwd_params; union sia_get_params { group_params group; passwd_params passwd; }; DESCRIPTION
The sia_getpasswd() routine provides thread locking for the libc_r routines (-D_THREAD_SAFE), provides static storage for non reentrant getpw* routines, and calls the appropriate siad_getpw* routine. This routine is called by getpwnam(), getpwnam_r(), getpwuid(), getp- wuid_r(), getpwent(), and getpwent_r(). The sia_getgroup() routine provides thread locking for libc_r routines (-D_THREAD_SAFE), provide static storage for non reentrant getgr* routines, and calls the appropriate siad_getgr* routine. This routine is called by getgrnam(), getgrnam_r(), getgrgid(), getgrgid_r(), getgrent(), and getgrent_r(). RETURN VALUES
The sia_getgroup() and sia_getpasswd() routines return either SIASUCCESS or SIAFAIL. ERRORS
The errno value is not (normally) set explicitly by sia_* routines. The errno values are those returned from the dynamic loader interface, from dependent (siad_*) routines, or from malloc. Possible errors include resource constraints (no memory) and various authentication failures. FILES
/etc/group /etc/passwd /etc/sia/matrix.conf RELATED INFORMATION
getgrent(3), getpwent(3), matrix.conf(4) Security delim off sia_getpasswd(3)
All times are GMT -4. The time now is 03:25 PM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy