Visit Our UNIX and Linux User Community


fork()ing hell!!


 
Thread Tools Search this Thread
Top Forums Programming fork()ing hell!!
# 15  
Old 02-15-2002
Computer

hey guys,
i used aniruddha's code in sun and it doesn't work. can somebody give a more rfined and a compiled error free code that works.
# 16  
Old 02-15-2002
Hmm... no. The first time I tried it, I didn't enter anything - I figured maybe that was the problem. But it does the same thing when I type "ls", "/bin/ls", "ls -l", etc...

I scrapped the BSD box to try out Solaris x86, so I'll try it once I get g++ installed...
# 17  
Old 02-25-2002
Here is another one, using a guard and separating out the child code.
Somehow, I feel this one can be easier to read in some situations.
Especially with the requirement that all control stay in the parent.


/*
bla, bla, code example, bla, bla, freely distributed, bla.
(C) Jan Atle Ramsli, Bug producer extraordinaire, esq.
trollet@skynet.be
*/
#include <unistd.h>
#include <stdio.h>

/* A static variable will only be 0 when the parent is loaded */
pid_t statpid = 0;

child_stuff()
{
printf("\tI am a child\n");
for (;Smilie
{

}
}

main(int ac, char *av[])
{
int i, num;
pid_t mypid;
pid_t children[100];

num = atoi(av[1]);
if(num < 1 || num > 99)
num = 10;

mypid = getpid();
printf("Hi, I am %d\n", mypid);

/*
* First time : statpid = 0, mypid = 0xef
* Other times: statpid = 0xef, mypid = 0xef+x
* where x != 0
* I think it makes the code clearer if the flag is show here,
* documented here, and acted upon here.
*/
if (statpid != 0)
{
child_stuff();
exit(0); /* You may or may not get here */
}

/*
* We are adult now, so we can allow ourselves to have
* children.
*/
for (i = 0; i < atoi(av[1]); i++)
{
if (! statpid)
{
switch(fork())
{
case 0:
statpid = getpid(); /* Note that we have had a child */
printf("Giving birth to child nr. %d is a wonderful thing\n", i+1);
break;
default:
printf("Uووووووووh, buuu-ووووh!\n");
break;
}
}
}
/*
* WE set it here, too :-]
*/
statpid = getpid();


}

Previous Thread | Next Thread
Test Your Knowledge in Computers #55
Difficulty: Easy
The term UPS stands for 'Universal Power Source'.
True or False?

8 More Discussions You Might Find Interesting

1. Programming

Issue when fork()ing processes

Hi guys! I'll simplify my problem. I have the following code: #include <fcntl.h> #include <stdio.h> #include <string.h> #include <stdlib.h> #include <signal.h> #include <fcntl.h> #include <unistd.h> #include <sys/wait.h> #define max 25 #define buffdim 50 void p1(); void p2();... (2 Replies)
Discussion started by: pfpietro
2 Replies

2. Shell Programming and Scripting

quoting hell - help needed!!

I am writing a bash script to automate the installation of web environment on a base install of Fedora. And I'm at the limit of my last nerve and my bash skills. My brain is screaming at me: "Give up and use perl", but I am trying to stick to bash since the script will modify the perl environment... (6 Replies)
Discussion started by: lbe
6 Replies

3. Shell Programming and Scripting

grep'ing and sed'ing chunks in bash... need help on speeding up a log parser.

I have a file that is 20 - 80+ MB in size that is a certain type of log file. It logs one of our processes and this process is multi-threaded. Therefore the log file is kind of a mess. Here's an example: The logfile looks like: "DATE TIME - THREAD ID - Details", and a new file is created... (4 Replies)
Discussion started by: elinenbe
4 Replies

4. What is on Your Mind?

The Hell of colaboration in UNIX and Linux

I don't want to speak about the goods or bads of both kinds of Operating systems, I only want to share a little experience with you to comment it. I live in Spain and I have home some old unix systems, some of them that I want to sell or change for other things, like a pair of Sun Blade 2000... (0 Replies)
Discussion started by: Golfonauta
0 Replies

5. UNIX for Dummies Questions & Answers

Confussed as hell

:eek: (1 Reply)
Discussion started by: Kevinfine
1 Replies

6. Shell Programming and Scripting

hell & mathematics

I've been able to generate output based on the code scarfake provided me (thanks again man). A little background so everyone more or less knows whats going on: I needed code that would propagate a database with 100,000 entries, for capacity testing purposes, something like a stress test. ... (5 Replies)
Discussion started by: ogoy
5 Replies

7. Shell Programming and Scripting

hell and sqlite

Hi everyone, I have a requirement that requires me to fill an sqlite database with 100,000 entries (no duplicates). I will start out by giving the command that will insert the values necessary to populate the database: # sqlite /var/local/database/dblist "insert into list... (2 Replies)
Discussion started by: ogoy
2 Replies

8. UNIX for Dummies Questions & Answers

rpm hell!

I've just installed redhat 6.2 on one of my systems and am trying to install the gcc c compiler after downloading an rpm from the redhat site. The damn thing gives me: only major numbers <= 3 are supported by this version of RPM what do I do, it does the same with the latest rpm of php ... (7 Replies)
Discussion started by: knmwt15000
7 Replies

Featured Tech Videos