O programa está analisando argv[0] (seu nome) e invocando um comportamento diferente com base no comando ( tracert ou traceroute ) que você está usando.
Se você executar o programa tracert , então argv[0] será tracert .
Portanto, dois comandos, mesmo executáveis, caminhos diferentes através do código que invoca diferentes comportamentos.
No Ubuntu Linux:
traceroute6 is equivalent to traceroute -6
tracert is equivalent to traceroute -I
tcptraceroute is equivalent to traceroute -T