Minoru@pink_snow: вообще это решается с помощью «нового» сисколла waitid, но он, похоже, реализован только в Linux и, кажется, в NetBSD. Во FreeBSD он тоже есть, но якобы только в Linux compatibility layer. Ну и, повторюсь, шеллы обязаны пользоваться нижними восемью битами, поэтому использовать waitid() значит удивить пользователя