$ strace ./944682.pl ... nanosleep({1, 0}, {1, 0}) = 0 nanosleep({0, 0}, NULL) = 0 lseek(3, 0, SEEK_END) = 32 open("/tmp/xxx", O_RDONLY) = 4 ioctl(4, SNDCTL_TMR_TIMEBASE or TCGETS, 0x7fff3d7d2c00) = -1 ENOTTY (Inappropriate ioctl for device) lseek(4, 0, SEEK_CUR) = 0 fstat(4, {st_mode=S_IFREG|0644, st_size=32, ...}) = 0 fcntl(4, F_SETFD, FD_CLOEXEC) = 0 fstat(4, {st_mode=S_IFREG|0644, st_size=32, ...}) = 0 close(4) = 0 lseek(3, 0, SEEK_END) = 32 rt_sigprocmask(SIG_BLOCK, [CHLD], [], 8) = 0 rt_sigaction(SIGCHLD, NULL, {SIG_DFL, [], 0}, 8) = 0 rt_sigprocmask(SIG_SETMASK, [], NULL, 8) = 0 ... #### ... lseek(3, 72, SEEK_SET) = 72 read(3, "foo\n", 4) = 4 lseek(3, 0, SEEK_CUR) = 76 rt_sigprocmask(SIG_BLOCK, [CHLD], [], 8) = 0 rt_sigaction(SIGCHLD, NULL, {SIG_DFL, [], 0}, 8) = 0 rt_sigprocmask(SIG_SETMASK, [], NULL, 8) = 0 nanosleep({1, 0}, {1, 0}) = 0 nanosleep({0, 0}, NULL) = 0 write(1, "foo\n", 4foo ) = 4 ...