another qustion about fork


 
Thread Tools Search this Thread
Top Forums Programming another qustion about fork
# 1  
Old 02-01-2004
another qustion about fork

hi there this program runs
but i m jus trying out a few things here to have an indepth knowledge about different possibilities.
can someone comment on this please.


#include<stdio.h>
#define DIM 8
int main()
{
int pid, i, ans;
int arr[DIM] = {1,2,3,4,5,6,7,8};

pid = fork();
/*printf("%d\n",pid);
printf("%d\n",getpid());
printf("%d\n",getppid());
*/

if(pid==0)
{
ans = 0;
for(i=0;i<DIM;i++)
{
ans = ans + arr[i];
printf("Child sum %d\n", ans);
}
_exit(0);
}
// printf("%d\n",getpid());
if(pid<0)
{
fprintf(stderr, "error\n");
exit(1);
}

ans = 1;
for(i=0;i<DIM;i++)
{
ans = ans * arr[i];
printf("Parent %d\n",ans);
}
}
===========
heres my out put

Child sum 1
Child sum 3
Child sum 6
Child sum 10
Child sum 15
Child sum 21
Child sum 28
Child sum 36
Parent 1
Parent 2
Parent 6
Parent 24
Parent 120
Parent 720
Parent 5040
Parent 40320

=========
question: what if i had an if loop sayin
if(pid>0)
{
ans = 1;
for(i=0;i<DIM;i++)
{
ans = ans * arr[i];
printf("Parent %d\n",ans);
}
}

the only difference here is i put a condition. but if i don't have a condition what would happen?
is there any difference?
does it matter?
# 2  
Old 02-01-2004
pid can be less than zero, equal to zero, or greater than zero. You already tested for equal to zero. And you tested for less than zero.

That means that pid must be greater than zero when it reaches that code. Putting in an explicit test will not change the way the program runs. And it will slow it down, but not measurably so.

Still I would put the explicit test in. This makes the code more readable. It also makes "paragraph 3" more self sufficient. These things make future changes to the program easier.
# 3  
Old 02-02-2004
perderabo,
thanks for the answer. i was just makin sure Smilie
Cheers!
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. UNIX for Dummies Questions & Answers

fork()

I'm trying to run a simple test on how to use fork(), i'm able to execute the child process first then the parent, but how can I execute parent then child..? Thanks! (1 Reply)
Discussion started by: l flipboi l
1 Replies

2. Programming

Fork()

does fork() spawn only the parent process, what if fork() is looped, does it spawn the parent and the child? (4 Replies)
Discussion started by: Peevish
4 Replies

3. Programming

Fork and \n

Hi, I wrote a simple program for understanding the fork command. The code is as below int main(void) { fork(); printf("hi 1 \n"); fork(); printf("hi 2 \n"); fork(); printf("hi 3 \n"); } I am getting a variation in the number of times the printf is called if i remove the \n from each... (2 Replies)
Discussion started by: xyz123456
2 Replies

4. UNIX for Advanced & Expert Users

Fork and \n

Hi, I wrote a simple program for understanding the fork command. The code is as below int main(void) { fork(); printf("hi 1 \n"); fork(); printf("hi 2 \n"); fork(); printf("hi 3 \n"); } I am getting a variation in the number of times the printf is called if i remove the \n from each of... (1 Reply)
Discussion started by: xyz123456
1 Replies

5. Programming

fork() help

Hi everybody, I wanna write a code to understand how fork works. my target -------------- -Parent creates a file(called temp) and writes into this file "1".Then it closes the file. -Then parent creates a child and wait until execution of this child ends. -Then child opens the same... (3 Replies)
Discussion started by: alexicopax
3 Replies

6. Programming

Fork ()

hi all About this code for (i = 1; i < n; i++) if ((childpid = fork()) <= 0) break; I really can't understand the output . and the way fork () return the value . how about the process Id ,the child process Id and the parent ID in this case so please answer me soon (5 Replies)
Discussion started by: iwbasts
5 Replies

7. Programming

Fork or what?

Hello all. I'm developing a filetransfer application, which is supposed to work sort of like dcc, with multiple transfers etc. Now i wonder what the best way to manage the transfers is. Should i fork() for each new transfer, hogging loads of memory or use pthreads? Maybe I can use select to see... (0 Replies)
Discussion started by: crippe
0 Replies

8. Programming

fork()

#include <stdio.h> #include <string.h> #include <sys/types.h> #define MAX_COUNT 200 #define BUF_SIZE 100 void main(void) { pid_t pid; int i; char buf; fork(); pid = getpid(); for (i = 1; i <= MAX_COUNT; i++) { sprintf(buf,... (2 Replies)
Discussion started by: MKSRaja
2 Replies

9. UNIX for Dummies Questions & Answers

mailx and mail list help - newbie qustion

I have a basic question - how do I create and then use a mail list to be able to send a mailx email to multiple recipients. I assume I create a test file using vi, containing the email addresses - but what is the format - are the addresses separated by ";", or by spaces, ....??? Is there a... (1 Reply)
Discussion started by: HikerLT
1 Replies

10. UNIX for Dummies Questions & Answers

Fork

What is a fork? Why would one create a fork? What are the advantages and disadvantages of using a fork? Please advise. Thank You. Deepali (5 Replies)
Discussion started by: Deepali
5 Replies
Login or Register to Ask a Question