A mensagem "Falha de segmentação" não é realmente escrita de ./my_applitation
, mas do shell.
Quando você usa &
após um comando, o shell irá executá-lo em segundo plano em um subshell, eu acho que a saída stderr dessa subshell é o que está sendo perdido.
Eu confirmo a mesma coisa aqui:
$ cat >segf.c <<EOF
int main(int argc, char *argv[]){
char *p;
p=0;
printf("%d", *p);
}
EOF
$ make segf
$ bash -c "./segf"
Segmentation fault
$ bash -c "./segf &"
$