03-07-2008
Hi,
You are right, this is due to buffering.
Add flush(stdout) before fork() to see the same results.
Also consider parent PID is 1.
Add sleep(1) before 'return' to see the true PPID.
Regards.
10 More Discussions You Might Find Interesting
1. Shell Programming and Scripting
The following command does not work under cygwin bash.
ant debug >log 2>&1 && ant image >>log 2>>&1 & pid=$!
It gives the error "-bash: sysntax error near unexpected token '&'".
Is there a way I can redirect std output and std error to file "log" for both the commands "ant debug" and "ant... (1 Reply)
Discussion started by: siegfried
1 Replies
2. Programming
Hi,
Am supposed to use message queues to send and receive messages between the processes. when i was working on that i realised that the message qid and the message queue related data should be maintained in a shared memory so that it can be accessed by all the processes. Could anybody refer... (10 Replies)
Discussion started by: rvan
10 Replies
3. Shell Programming and Scripting
Hi,
I have a process running in the background, which throws up some output to the terminal when I run my script. How can I read this output from my script?
Thank you. (5 Replies)
Discussion started by: Theju
5 Replies
4. Programming
Hi,
I'm trying to compile the following code:
/************** Begin <test.c> ***************/
/*
* Compiled with: gcc -Wall -o test test.c
*/
#include <stdio.h>
#include <unistd.h>
int main(void)
{
printf("I'm process %d, son of %d \n", getpid(), getppid());
... (5 Replies)
Discussion started by: djodjo
5 Replies
5. High Performance Computing
I read that 'Any single program that can run as multiple processes can benefit from OpenMosix: "The GIMP" photo editor and the "kandel" fractal generator are known to do this.
Are there other load-balancing clusters that do support multi-process applications? (1 Reply)
Discussion started by: Advice Pro
1 Replies
6. Shell Programming and Scripting
Below script perfectly works, giving below mail output. BUT, I want to make the script mail only if there are any D-Defined/T-Transition/B-Broken State WPARs and also to copy the output generated during monitoring to a temporary log file, which gets cleaned up every week. Need suggestions.
... (4 Replies)
Discussion started by: aix_admin_007
4 Replies
7. Shell Programming and Scripting
Hi Guys,
I want to redirect the output of 3 scripts to a file and then mail the output of those three scripts.
I used below but it is not working:
OFILE=/home/home1/report1
echo "report1 details" > $OFILE
=/home/home1/1.sh > $OFILE
echo... (7 Replies)
Discussion started by: Vivekit82
7 Replies
8. Programming
So I am trying to learn C and am coding some scripts on my own.
For a start I have decided to port the shell script developed by wisecracker into C.( Here is the link to that script A simple reminder script for beginners to shell scripting. | Unix Linux Forums | OS X (Apple) )
This is what I... (7 Replies)
Discussion started by: chacko193
7 Replies
9. Shell Programming and Scripting
Hey guys,
I have a python script that I call with this line:
python mypythonscript.py >> results.csv &The problem is that the redirection from the stdout to the file results.csv only writes 4096 kbyte blocks.
So if i kill this process with
kill the last kbytes that the script produce will... (6 Replies)
Discussion started by: Mastaer
6 Replies
10. Shell Programming and Scripting
hi
I want to call a lot of links with the post method
What to do to speed it up??
####This method is slow
#!/bin/bash
func2() {
index1=0
while read line ; do
index1=$(($index1+1))
url=$line
done < tmp/url1.txt
} (10 Replies)
Discussion started by: mnnn
10 Replies
VFORK(2) System Calls Manual VFORK(2)
NAME
vfork - spawn new process in a virtual memory efficient way
SYNOPSIS
pid = vfork()
int pid;
DESCRIPTION
Vfork can be used to create new processes without fully copying the address space of the old process, which is horrendously inefficient in
a paged environment. It is useful when the purpose of fork(2) would have been to create a new system context for an execve. Vfork differs
from fork in that the child borrows the parent's memory and thread of control until a call to execve(2) or an exit (either by a call to
exit(2) or abnormally.) The parent process is suspended while the child is using its resources.
Vfork returns 0 in the child's context and (later) the pid of the child in the parent's context.
Vfork can normally be used just like fork. It does not work, however, to return while running in the childs context from the procedure
that called vfork since the eventual return from vfork would then return to a no longer existent stack frame. Be careful, also, to call
_exit rather than exit if you can't execve, since exit will flush and close standard I/O channels, and thereby mess up the parent processes
standard I/O data structures. (Even with fork it is wrong to call exit since buffered data would then be flushed twice.)
SEE ALSO
fork(2), execve(2), sigvec(2), wait(2),
DIAGNOSTICS
Same as for fork.
BUGS
This system call will be eliminated when proper system sharing mechanisms are implemented. Users should not depend on the memory sharing
semantics of vfork as it will, in that case, be made synonymous to fork.
To avoid a possible deadlock situation, processes that are children in the middle of a vfork are never sent SIGTTOU or SIGTTIN signals;
rather, output or ioctls are allowed and input attempts result in an end-of-file indication.
4th Berkeley Distribution June 30, 1985 VFORK(2)