Sponsored Content
Homework and Emergencies Homework & Coursework Questions fork system call understanding Post 302400108 by vivekraj on Tuesday 2nd of March 2010 08:09:14 AM
Old 03-02-2010
Your program creates four processes.Because two child processes creates another two child processes.Because,the loop runs twice for each process.
 

10 More Discussions You Might Find Interesting

1. UNIX for Advanced & Expert Users

URGENT Help required regarding the use of FORK system call

I desperately wanted one of the UNIX Gurus to help me resolve my problem asap(I have to deliver the code to the client by Monday 08-oct). I have a file with around 5 million records (50 lakhs). Now my original process was taking around 30 hours to read the complete file, process each and every... (4 Replies)
Discussion started by: kkumar1975
4 Replies

2. Programming

Fork() system call time?

One more question. How can i calculate the time that system needs to make fork() system call? I need to make it with times function but i really don't know how. :( (2 Replies)
Discussion started by: davidoff
2 Replies

3. UNIX for Advanced & Expert Users

how to differentiate system call from library call

Hi, Ho do I differentiate system call from library call? for example if I am using chmod , how do I find out if it is a system call or library call? Thanks Muru (2 Replies)
Discussion started by: muru
2 Replies

4. UNIX for Dummies Questions & Answers

fork() system call

Can anyone explain me what really happens when a system call fork() is called ? I like to know what happens internally. Thanks in Advance. - Arun (1 Reply)
Discussion started by: arunviswanath
1 Replies

5. UNIX for Dummies Questions & Answers

fork system call

Hi folks, I want to know how this below program works? #include <stdio.h> int main() { printf("A\n"); fork(); printf("B\n"); fork(); fork(); printf("D\n"); fork(); printf("C\n"); } This is just for example. How this type of programs where fork is used many places, how the... (1 Reply)
Discussion started by: u_peerless
1 Replies

6. Shell Programming and Scripting

fork system call and \n

hi, i tried the following source codes: fork1.c: main() { printf("demo of fork\n"); fork(); printf("hello"); } output: demo of fork hello hello fork2.c: main() { printf("demo of fork"); (0 Replies)
Discussion started by: pnirmala
0 Replies

7. Programming

Problem with execution of fork system call if i use \n

hi all, i tried the following source codes: fork1.c: main() { printf("demo of fork\n"); fork(); printf("hello"); } output: demo of fork hello hello fork2.c: main() (3 Replies)
Discussion started by: pnirmala
3 Replies

8. UNIX for Advanced & Expert Users

Doubt with fork() system call

Hi I wrote a simple fork program to illustrate the fork() system cal. here it is #include<stdio.h> #include<sys/stat.h> #include<sys/types.h> main() { int flag; flag=fork(); if(flag==0) { printf("Child \n"); printf("Process id= %d\n",getpid()); ... (3 Replies)
Discussion started by: badsha6642
3 Replies

9. Shell Programming and Scripting

Help: how to call fork() in shell script? New to linux

Hi, I'm writing a shell script where I want to call fork(). However I wrote like this "var=fork()" in c style and got this error: "syntax error near unexpected token `(' " How could I call fork() in shell script? Thanks in advance. Duplicate Post - Continue Here - Please Do Not Cross Post... (0 Replies)
Discussion started by: Xiaoya
0 Replies

10. Ubuntu

Help: how to call fork() in shell script? New to linux

Hi, I'm writing a shell script where I want to call fork(). However I wrote like this "var=fork()" in c style and got this error: "syntax error near unexpected token `(' " How could I call fork() in shell script? Thanks in advance. (2 Replies)
Discussion started by: Xiaoya
2 Replies
vfork(2)							System Calls Manual							  vfork(2)

NAME
vfork - spawn new process; share virtual memory SYNOPSIS
REMARKS
is a higher performance version of that is provided on some systems where a performance advantage can be attained. If the calling process is multi-threaded, the newly created child process will only contain one thread. This one thread will be a copy of the thread calling differs from only in that the child process can share code and data with the calling process (parent process). This speeds cloning activ- ity significantly at a risk to the integrity of the parent process if is misused. The use of for any purpose except as a prelude to an immediate or is not supported. Any program that relies upon the differences between and is not portable across HP-UX systems. All HP-UX implementations must provide the entry but it is permissible for them to treat it identically to On some implementations the two are not distinguished because the implementation is as efficient as possible. Other versions may do the same to avoid the overhead of sup- porting two similar calls. DESCRIPTION
can be used to create new processes without fully copying the address space of the old process. If a forked process is simply going to do an (see exec(2)), the data space copied from the parent to the child by is not used. This is particularly inefficient in a paged environ- ment, making particularly useful. Depending upon the size of the parent's data space, can give a significant performance improvement over differs from in that the child borrows the parent's memory and thread of control until a call to or an exit (either by a call to or abnor- mally (see exec(2) and exit(2)). The parent process is suspended while the child is using its resources. returns 0 in the child's context and (later) the pid of the child in the parent's context. can normally be used just like It does not work, however, to return while running in the child's context from the procedure which called since the eventual return from would then return to a no longer existent stack frame. The window begins at the call and ends when the child completes its call. RETURN VALUE
Upon successful completion, returns a value of 0 to the child process and returns the process ID of the child process to the parent process. Otherwise, a value of -1 is returned to the parent, no child process is created, and is set to indicate the error. ERRORS
fails and no child process is created if any of the following conditions are encountered: The system-wide limit on the total number of processes under execution would be exceeded. The system-imposed limit on the total number of processes under execution by a single user would be exceeded. DEPENDENCIES
Servers Process times for the parent and child processes within the window may be inaccurate. Parent and child processes share the same stack space within the window. If the size of the stack has been changed within this win- dow by the child process (return from or call to a function, for example), it is likely that the parent and child processes will be killed with signal or In the window, a call to (see signal(2) that installs a catching function can affect handling of the signal by the parent. The par- ent is not affected if the handling is being set to or or if is used (see sigaction(2)). AUTHOR
was developed by the University of California, Berkeley. SEE ALSO
exec(2), exit(2), fork(2), sigaction(2), wait(2). vfork(2)
All times are GMT -4. The time now is 06:40 AM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy