Problem with execution of fork system call if i use \n
hi all,
i tried the following source codes:
fork1.c:
Code:
main()
{
printf("demo of fork\n");
fork();
printf("hello");
}
output:
Code:
demo of fork
hello hello
fork2.c:
Code:
main()
{
printf("demo of fork");
fork();
printf("hello");
}
output(fork2.c):
Code:
demo of fork
hello hello demo of fork
In both the programs chilld and parent process are supposed to execute the statement(here its printf("hello")) which is next to fork call.But why the printf("demo of fork") is getting executed twice.Pls clarify my doubt.
Thanks in advance.
Last edited by Scott; 12-24-2010 at 09:23 AM..
Reason: Please use code tags
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)
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)
Dear Friends,
I write a c program to list the directories recursively. For this I write a function called my_readdir to read the content of directory. For this I use read system call it returns -1, then I use readdir system call it gives comment terminated error or segmentation... (1 Reply)
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)
Hi,
i am using IBM P6 server and OS is AIX 5.3. my code is written in c/pro C.
i am facing problem in msgctl() system call.The variables msg_qbytes and msg_cbytes are used to store total no of bytes and current no of bytes in a QUEUE,but it is showing me as ZERO though data are there... (0 Replies)
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)
hi,
where can I find the detail information about the syscall in binary instructions of linux/mips.
for example, in linux/mips:
li v0, 4140
syscall
it's a syacall of "lseek" , but how can I find that which registers will be used in this syscall , and the meaning of the arguments in the... (2 Replies)
Use and complete the template provided. The entire template must be completed. If you don't, your post may be deleted!
1. The problem statement, all variables and given/known data:
i have a problem in understanding the behaviour of fork .
i understood fork as to create a new process and... (4 Replies)
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)
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
LEARN ABOUT FREEBSD
pthread_atfork
PTHREAD_ATFORK(3) BSD Library Functions Manual PTHREAD_ATFORK(3)NAME
pthread_atfork -- register fork handlers
LIBRARY
POSIX Threads Library (libpthread, -lpthread)
SYNOPSIS
#include <pthread.h>
int
pthread_atfork(void (*prepare)(void), void (*parent)(void), void (*child)(void));
DESCRIPTION
The pthread_atfork() function declares fork handlers to be called before and after fork(2), in the context of the thread that called fork(2).
The handlers registered with pthread_atfork() are called at the moments in time described below:
prepare Before fork(2) processing commences in the parent process. If more than one prepare handler is registered they will be called in
the opposite order they were registered.
parent After fork(2) completes in the parent process. If more than one parent handler is registered they will be called in the same order
they were registered.
child After fork(2) processing completes in the child process. If more than one child handler is registered they will be called in the
same order they were registered.
If no handling is desired at one or more of these three points, a null pointer may be passed as the corresponding fork handler.
RETURN VALUES
If successful, the pthread_atfork() function will return zero. Otherwise an error number will be returned to indicate the error.
ERRORS
The pthread_atfork() function will fail if:
[ENOMEM] Insufficient table space exists to record the fork handler addresses.
SEE ALSO fork(2), pthread(3)STANDARDS
The pthread_atfork() function is expected to conform to IEEE Std 1003.1 (``POSIX.1'').
AUTHORS
This manpage was written by Alex Vasylenko <lxv@omut.org>.
BSD June 21, 2004 BSD