lkml.org 
[lkml]   [1997]   [Feb]   [26]   [last100]   RSS Feed
Views: [more markup]  [less markup]  [headers]  [forward] 
 
Messages in this thread
/
FromSnow Cat <>
SubjectRe: how does fork() work?
DateWed, 26 Feb 1997 09:44:34 -0800 (PST)
Marty Leisner once wrote:
> 
> 
> I want to write a debugging fork (i.e. one that prints and stops after forking).
> 
> I want to use LD_PRELOAD to wrap around fork...so I need a more complicated C
> function called fork, eventually invoking the syscall.
> 
> I'm a bit confused with the libc architecture for syscalls, what headers
> (sysdep?) do I need to pull out of the tree and place around an application
> for this?
> 
> What I eventually want is:
> 
> 
> fork()
> {
> 	fancy stuff;
> 
> 	result = system entry point fork()
> 
> 	if(child) {
> 		printf();
> 		pause();
> 	}
> 	return result;
> 
> }
> 
> 

The simpliest solution would be to call dlsym(RTLD_NEXT, "fork") (in <dlfcn.h>)
and link your preload library with -ldl. Free compatibility with Solaris :)


-- 
 _.    	        _       .  
(_ ,_  _ ,  .  / ` _ _L	 | Email: Oleg Kibirev <snowcat@netgate.net>
._)| U(_)\/\/  \_,(_L/L  | Visit http://math.math.CSUFresno.EDU/~oleg/math.html
------------------------'  to get my programs + PGP public key
\
 
 \ /
  Last update: 2005-03-22 13:39    [from the cache]
©2003-2008