Visit Our UNIX and Linux User Community


How to make a C code reentrant?


 
Thread Tools Search this Thread
Top Forums Programming How to make a C code reentrant?
# 1  
Old 10-08-2001
Question How to make a C code reentrant?

Dear reader,

This is a query related to multiuser environment. I have a piece of code written in C. Now I want to make this code as reentrant and execute on several trminals at the same time, such that there exists only one copy of code in the memory.

Please tell me..
1. What are the parameters required to make a code reentrant?
2. Can we use the same parameters on a linux environment?

Thanking you,
# 2  
Old 10-08-2001
Neelam,
I suggest that to be on the safer side on a networking environment, only use those system calls that are reentrant as specified by Posix. Before using any System Canl, just refer the manual on the machine to find if it adheres to those standards.

And unluckily if u have to use a Call that is non- reentrant.. i.e mainly the Blocking or Slow system call, then better check the return values of the call while calling them and if its a failure then better restart the System Call to proceed ahead or your system can behave in really amazing ways.

Good Luck.. Smilie
# 3  
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.

Previous Thread | Next Thread
Test Your Knowledge in Computers #475
Difficulty: Medium
A Yottabyte (YB) equals 1,208,925,819,614,629,174,706,176 bytes.
True or False?

9 More Discussions You Might Find Interesting

1. 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

2. 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

3. 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

4. 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

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. 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

7. 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

8. 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

9. 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

Featured Tech Videos