Sponsored Content
Full Discussion: fork() fd
Top Forums Programming fork() fd Post 16199 by Herman on Tuesday 26th of February 2002 10:21:42 PM
Old 02-26-2002
fork() fd

I run this code, actually I want to both processes print the message from "data". But only one does. What happens? Anyone can help?


#include <stdio.h>
main(){

int fd, pid;
char x;


fd = open("data",0); /* open file "data" */
pid = fork();

if(pid != 0){
wait(0);
printf("PID = %d.\n", getpid());
printf("FD = %d.\n",fd);
while (read(fd, &x, 1)){
write(1, &x, 1);
}
}
else{
printf("PID = %d.\n", getpid());
printf("PD= %d.\n",fd);
while (read(fd, &x, 1))
write(1, &x, 1);
}
}

The out put from the code:

This is a test.
PID = 4985.
PD= 3.
PID = 4984.
FD = 3.
 

10 More Discussions You Might Find Interesting

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

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

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

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

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

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

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

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

10. Programming

Fork!

I understand that fork create a child but I need very simple example that make child useful.... I mean how will make the program faster anyone explain with code plz using C plz (2 Replies)
Discussion started by: fwrlfo
2 Replies
dtruss(1m)							   USER COMMANDS							dtruss(1m)

NAME
dtruss - process syscall details. Uses DTrace. SYNOPSIS
dtruss [-acdeflhoLs] [-t syscall] { -p PID | -n name | command } DESCRIPTION
dtruss prints details on process system calls. It is like a DTrace version of truss, and has been designed to be less intrusive than truss. Of particular interest is the elapsed times and on cpu times, which can identify both system calls that are slow to complete, and those which are consuming CPU cycles. Since this uses DTrace, only users with root privileges can run this command. OPTIONS
-a print all details -b bufsize dynamic variable buffer size. Increase this if you notice dynamic variable drop errors. The default is "4m" for 4 megabytes per CPU. -c print system call counts -d print relative timestamps, us -e print elapsed times, us -f follow children as they are forked -l force printing of pid/lwpid per line -L don't print pid/lwpid per line -n name examine processes with this name -W name wait for a process matching this name -o print on-cpu times, us -s print stack backtraces -p PID examine this PID -t syscall examine this syscall only EXAMPLES
run and examine the "df -h" command # dtruss df -h examine PID 1871 # dtruss -p 1871 examine all processes called "tar" # dtruss -n tar run test.sh and follow children # dtruss -f test.sh run the "date" command and print elapsed and on cpu times, # dtruss -eo date FIELDS
PID/LWPID Process ID / Lightweight Process ID RELATIVE relative timestamps to the start of the thread, us (microseconds) ELAPSD elapsed time for this system call, us CPU on-cpu time for this system call, us SYSCALL(args) system call name, with arguments (some may be evaluated) DOCUMENTATION
See the DTraceToolkit for further documentation under the Docs directory. The DTraceToolkit docs may include full worked examples with ver- bose descriptions explaining the output. EXIT
dtruss will run forever until Ctrl-C is hit, or if a command was executed dtruss will finish when the command ends. AUTHOR
Brendan Gregg [Sydney, Australia] SEE ALSO
procsystime(1M), dtrace(1M), truss(1) version 0.80 Jun 17, 2005 dtruss(1m)
All times are GMT -4. The time now is 06:14 PM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy