Uma falha de segmentação é um sinal, se você não estiver capturando isso, seu programa será finalizado e seu shell irá imprimir isso em seu stderr (ao invés do stderr do seu programa).
É possível que o seu programa ou o shell executem ações específicas quando isso ocorre, seja pelo programa que captura o sinal ou pelo shell que captura o sinal SIGCHILD e depois verifica o status de saída do seu filho.