Hello, On 2021-07-24 04:16:25 +0300, Yuri Kanivetsky wrote: > I'm not sure that it has something to do with musl. But experienced in > a Alpine Linux docker container (ruby:2.6-alpine3.14) on Debian 9 or > 10. I can't reproduce it with Alpine Linux 3.13 (container) or Debian > 8 (host). Cannot reproduce over here, your sample program works for me in alpine 3.14 container running under podman. > For example, the following program outputs -1: Not here: / # ./main 0 / # strace -f ./main execve("./main", ["./main"], 0x7ffdaab97618 /* 8 vars */) = 0 arch_prctl(ARCH_SET_FS, 0x7f2305385b48) = 0 set_tid_address(0x7f2305385f90) = 19 brk(NULL) = 0x562e4bf54000 brk(0x562e4bf56000) = 0x562e4bf56000 mmap(0x562e4bf54000, 4096, PROT_NONE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x562e4bf54000 mprotect(0x7f2305382000, 4096, PROT_READ) = 0 mprotect(0x562e4b3a9000, 4096, PROT_READ) = 0 faccessat2(AT_FDCWD, "/", R_OK, AT_EACCESS) = 0 ioctl(1, TIOCGWINSZ, {ws_row=53, ws_col=95, ws_xpixel=21852, ws_ypixel=0}) = 0 writev(1, [{iov_base="0", iov_len=1}, {iov_base="\n", iov_len=1}], 20 ) = 2 exit_group(0) = ? +++ exited with 0 +++ Maybe you can try to strace the 3.14 and 3.13 versions to see if there is any difference. W. -- There are only two hard things in Computer Science: cache invalidation, naming things and off-by-one errors.