Unix sleep should look more like this:
int main(int argc, char **argv) {
        char s[1024];
        alarm(atoi(argv[1]));
        while ( read(0,s,1000) )
                write(1,s,1000);
        return 0;
}
Cause then we could easily control programs that don't terminate. e.g.:
tcpdump -n -i eth1 | sleep 30 | ./pcap_netflow.pl
As it stands, I have to find the PID of the tcpdump, sleep the remaining time, and then kill the PID.