int fds[2];
...
int f= open("arch.cpio", O_RDONLY);
pid_t p;
pipe(fds);
p= fork();
if( p > 0 )
{
char buf[1024];
int n;
while( (n= read(f, buf, 1024)) > 0 )
write(fds1[1], buf, n);
close(f);
close(fds1[1]);
}
else
{
dup2(fds[0], 0);
execl(...);
}
Core Breaker 