Messages in this thread | | | Subject | Re: what will connect the fork() with its following code ? a simple example below: | From | Bernd Petrovitsch <> | Date | Wed, 07 Sep 2005 09:08:48 +0200 |
| |
On Tue, 2005-09-06 at 12:58 -0400, Valdis.Kletnieks@vt.edu wrote: > On Tue, 06 Sep 2005 17:15:51 +0800, "Sat." said: > > Not a kernel problem, please consult an intro-to-C list next time.... > > > if(!(pid=fork())){ > > ...... > > printk("in child process"); > > ...... > > }else{ > > ..... > > printk("in father process"); > > ..... > > } > > > > > values., and do nothing . so the bridge between the new process and > > its following code, printk("in child process"), seems disappear > > I'm assuming you actually meant printf() (which is the userspace stdio call) > rather than printk() (which is the inside-the-kernel variant).
I actually assumed the same.
> 'man setbuf' - most likely the output of the child process is buffered and > never actually output before it exits. You want to set stdout to be
It is buffered since the above printf() lacks a terminating "\n". So either put a "\n" at the end or call "fflush(stdout);"
> line-buffered or unbuffered, or write to stderr (unbuffered by default) rather > than stdout.
Bernd -- Firmix Software GmbH http://www.firmix.at/ mobil: +43 664 4416156 fax: +43 1 7890849-55 Embedded Linux Development and Services
- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
| |